Comunidad de diseño web y desarrollo en internet online

Append Element Que Sean Igual (==) A Variable new Date

Citar            
MensajeEscrito el 16 Feb 2017 04:54 pm
Buenas Amigos, Aquí Les Muestro El Código T Por Medio de Comentario Les Dire Lo Que Quiero.

Código :

<table>
<tr class="data-team" data-date="21-01-2017 13:00"><td>Items 1</td></tr>
<tr class="data-team" data-date="02-02-2017 08:30" ><td>Items 2</td></tr>
<tr class="data-team" data-date="30-01-2017 10:00" ><td>Items 3</td></tr>
</table>

<div class="Aquí">
<span>Aquí Se agregaran Los Items</span>
</div>



      <script>

function ocultarPorFecha() {
      
var fechaActual = new Date();
// 2) RECUPERO TODOS LOS TR QUE TIENE LA CLASE .date-team y Convierto el NodeList en un Array para poder recorrerlo
      
var partidos = Array.prototype.slice.call(document.querySelectorAll('tr.date-team'));
     
// 3) Utilizo el metodo forEach para recorrer el array
      
partidos.forEach(function(element, index) {

var fechaInicioPartido = element.getAttribute('data-date'); // 5) obtengo la fecha del partido 
fechaInicioPartido = construyeFecha(fechaInicioPartido); // 6) covierto la fecha con tu funcion

// Esta Linea Funciona Excelentemente, Me Escoge Los Items Cuyo Atributo Data Data Son > A Le Fecha Actual.
if (fechaActual > fechaInicioPartido){
$(element).css("background", "#fc0"); 
$(element).clone().appendTo('.Aquí'); 
}
//Igualmente Esta Linea Funciona. 
if (fechaActual < fechaInicioPartido){
$(element).css("background", "#09c"); 
$(element).clone().appendTo('.Aquí'); 
}
///// Esta Linea Si No Trabaja, No Me Escoge Los Items Cuyo data-date Son == A FechaActual
if (fechaActual == fechaInicioPartido){
$(element).css("background", "#fc0"); 
$(element).clone().appendTo('.Aquí'); 
} 
});

}

function construyeFecha(stringfecha) {
var dia = parseInt(stringfecha.substring(0, 2));
var mes = parseInt(stringfecha.substring(3, 5)) - 1;
var anio = parseInt(stringfecha.substring(6, 10));
var hora = parseInt(stringfecha.substring(11, 13));
var minuto = parseInt(stringfecha.substring(14, 16));
return new Date(anio, mes, dia, hora, minuto);
}

window.addEventListener('load', ocultarPorFecha);
</script>

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Feb 2017 05:13 pm
No se que tipo de datos son, pero trázalos a ver si se ven iguales

console.log(fechaActual +"=="+ fechaInicioPartido);

abre la console del navegador y mira como lucen

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 16 Feb 2017 06:05 pm
Me Muestra La Fecha Actual Que la Toma de Mi Pc, Y el Atributo data-date Del primer TR. Le Clickeo En Aceptar Y Empieza A Recorrer el data-date de cada TR.
Ya Llevo Bastante Tiempo Tratando De Obtener Los tr Cuyo data-date Sea Igual A La Fecha Actual Y No Lo he logrado. Pense Que Era Por El Array Y No, Y Lo único que Supongo Que Sea La Falla, Es El Construyefecha. Que Convierte el Valor De data-date A Fecha Y Lo Compara Con la Variable FechaActual. Le Agradecería La Ayuda Que Me Puedan Brindar.

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Feb 2017 06:10 pm
¿Que traza? ¿Son iguales o no?

Please, no escribas con mayúscula cada palabra, se hace muy molesto de leer

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 16 Feb 2017 06:39 pm
No son iguales. traza. thu 16 feb 2017 == mon 30 jan 2017

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Feb 2017 07:25 pm
No entiendo bien cual es el problema que quieres resolver.

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 16 Feb 2017 09:37 pm
Disculpeme, quizás no he puesto bien la explicación, haber lo que deseo es obtener todos los fechaInicioPartido que son los elementos cuyo atributo data-date (16-02-2017 13:00) sean igual a la fechaActual.

if(fechaActual == fechaInicioPartido),{
$(element).css("background","#fc0");

} Y no escoge ningun elemento, asi tenga la misma fecha Y hora lo los seleciona, en cambio esta funcion si la ejecuta
if (fechaActual > fechaInicioPartido). con esta funcion si obtiene los elementos cuyo data-date son menores a la fecha Actual.


La opcion de igualdad no funciona, Espero ahora si me halla entendido, y le agradecería me ayudara

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Feb 2017 09:59 pm
Ok, entonces entiendo que estas comparando dos objetos Date, con lo cual tienes que pasarlos a numérico, porque sobre los objetos no funciona

if(fechaActuak.getTime()==fechaInicioPartido.getTime())

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 16 Feb 2017 10:00 pm
Intentare Con Esto, Ya Le Aviso.
Gracias

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Feb 2017 10:03 pm
No No Me Funciono, Jorge. disculpe jorge se que no me expreso muy bien y no soy experto en javascript ni jquery, pero si le hecharas un vistaso al primer codigo que publique y observaras y analizaras ya teniendo conocimiento del problema. quizás me entiendas mas. gracias

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Feb 2017 10:12 pm
Ok, ahora quiero que traces lo que obtienes para comprobar que realmente es asi. No es un solo trace, debería haber uno por fila, es decir varios, sino el problema está en otro lado:

console.log(fechaActual.getTime()==fechaInicioPartido.getTime())

Esto debería dar una salida por fila, donde nunca coinciden, y si eso es asi, entonces el problema esta en otro lado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 17 Feb 2017 03:33 am
Si señor ud tiene razón, nunca coinciden, esto es lo que me aparece con el alert. observa.
thu 16 feb 2017 10:38 == mon 30 jan 2017 09:30.

Ahora lo que ud me dice es que escriba el código

console.log(fechaActual.getTime()==fechaInicioPartido.getTime())

Mi pregunta, es donde la pongo, antes de la funcion con la que estoy trabajando o después. intentare y le dare una respuesta. gracias
Jorge.

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Feb 2017 03:47 am
Jorge lo puse en un alert y me traza undefinide.

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Feb 2017 02:33 pm
Ok, tienes que avanzar en tu debugging. Entiendo que usar alert es obvio, pero interrumpe el flujo y lleva mas tiempo. Según lo tienes planteado, tienen que salir 1 trace por fila, lo cual si usas alerts hace que estes cerrando uno cada vez. Para que el debugging no sea tan lento se usa la consola de salida. En Chrome por ejemplo, oprimes Ctrl+Shift+I en Windows y aparece el panel de desarrollador, en donde ver'as la salida del comando que te puse que es

console.log("Hola soy la consola")

Si pones eso verás que el mensaje aparece en la consola. Esto se usa para debugging (incluso mejor es usar breakpoints, pero paso a paso) Entonces el comando que te pasé solamente traza los valores, no soluciona nada, te muestra lo que hay. Donde ponerlo? Justo antes del if

console.log(fechaActual +"=="+ fechaInicioPartido)
if (fechaActual == fechaInicioPartido)

De esta forma sabes que valores evalúa el if, y si lo que sale es undefined, entonces el problema es que alguna de las dos fechas no tiene valor

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 17 Feb 2017 04:55 pm
Aww ya voy comprendiendo jorge. jorge tengo una duda, si hay un problema en los valores de alguna de la variable porque solo falla en == y en < o > funciona bien. le agradezco me ayude a encontrar una solucion.

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Feb 2017 08:12 pm
En realidad no da error porque comparar algo con undefined no es necesariamente erróneo, pero te da siempre false, es decir en tu caso no entraría en ninguna de las condiciones .... ¿o esta entrando en alguna?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Feb 2017 08:25 pm
Si señor esta ingresando en la de < y > por cualquiera de ellas, hace lo que quiero, menos en ==

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Feb 2017 09:06 pm
Entonces simplemente no coincide ninguna, a menos que en la consola veas que traza el mismo numero

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Feb 2017 09:31 pm
La consola lo traza, mas la funcion no, no actua ni nada por el estilo.

Por Luis Sabi

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Feb 2017 10:07 pm
No actúa porque nunca hay dos números iguales, eso es lo que demuestra la traza

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Feb 2017 10:26 pm
Jorge ya lo logre, Muchas Gracias, mire me puse a buscar, comparar si dos fechas son iguales, y aparecia lo mismo. entonces dice que ahy que poner un set hours a cada variable, no se ni como explicarle, mejor aquí esta el codigo mirelo.

fechaActual.setHours(0,0,0,0);
fechaInicioPartido.setHours(0,0,0,0);

if(fechaActual.getTime() == fechaInicioPartido.getTime()){
$(element).css("background","#fff");
$(element).appendTo('.Aquí');


}


De todas maneras gracias Jorge Por todo. :) muchas gracias .

Por Luis Sabi

7 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.