2010-11-27 16 views
19

Lo intento pero no funciona ... ¿por qué?¿Cómo saber si la fecha es hoy?

<html> 
<body> 
    <script type="text/javascript"> 

     var today=new Date(); //today is Nov 28, 2010 
     today.setHours(0); 
     today.setMinutes(0); 
     today.setSeconds(0); 
     document.write(today+" "); 

     var today2 = new Date("November 28, 2010"); 
     document.write(today2 + " "); 
     if (today == today2) { document.write("=="); 
     if (!(today > today2) && !(today < today2)) {document.write("== ");} 
     if (today > today2) { document.write("> ");} 
     if (today >= today2){ document.write(">= ");} 
     if (today < today2) { document.write("< ");} 
     if (today <= today2){ document.write("<= ");} 

    </script> 
</body> 
</html> 

Y siempre me sale esto:

Sun Nov 28 2010 00:00:00 GMT+0900 (JST) Sun Nov 28 2010 00:00:00 GMT+0900 (JST) > >= 

no son ambos fechas para ser el mismo? Por lo tanto, debo hacerme == impresa, pero no está sucediendo ...;.. (

Gracias por su ayuda de antemano

+0

¿Pediste una forma de calcular la diferencia de fecha o una forma de determinar si una fecha determinada es hoy? Para la primera pregunta, consulte: http://stackoverflow.com/questions/41948/how-do-i-get-the-difference-between-two-dates-in-javascript. Por el segundo, verifica mi respuesta. – KooiInc

+0

Gracias a todos por las respuestas ... esto fue una especie de experimento js;) – nacho4d

Respuesta

57

Ellos nunca coincidirán porque usted está comparando dos instancias Date objeto separado

Es necesario conseguir un poco de valor común que se puede comparar. Por ejemplo .toDateString().

today.toDateString() == today2.toDateString(); // true 

Si sólo comparar dos objetos separados Date, incluso si tienen la exacta mismo valor de fecha, todavía son diferentes.

Por ejemplo:

today == new Date(today); // false 

Son el mismo valor de fecha/hora, pero no son el mismo objeto, por lo que el resultado es false.

+4

Esta es la respuesta correcta – Andy

+0

¿Existe un mecanismo para anular la selección de OP? – Sinetheta

16
function today(td) { 
    var d = new Date(); 
    return td.getDate() == d.getDate() && td.getMonth() == d.getMonth() && td.getFullYear() == d.getFullYear(); 
} 
Cuestiones relacionadas