2010-05-02 18 views
18

Duplicar posible:
Compare 2 dates with JavaScriptfecha JavaScript comparación

no he hecho mucho JavaScript. Estoy tratando de comparar dos fechas. Desde jconsole:

a = ["01/01/2010","01/02/2010","01/03/2010"] 

date1 = new Date('01/02/2010') 
Sat Jan 02 2010 00:00:00 GMT-0800 (PST) 

date2 = new Date(a[1]) 
Sat Jan 02 2010 00:00:00 GMT-0800 (PST) 

date1 == date2 
false 

¿Alguien me puede decir por qué esto no coincide?

+7

Es interesante observar que tanto '> =' y '<=' 'retorno en true' este caso, pero '==' da 'falso'. Otro milagro de JavaScript. – Kobi

Respuesta

38

La comparación regresa como falsa porque date1 y son simplemente referencias a diferentes objetos, y usted en realidad está comparando estas referencias.

Para hacer una comparación adecuada de los valores de fecha, puede utilizar el método getTime() de la siguiente manera:

date1.getTime() === date2.getTime(); // returns true 
+1

bien gracias. Entonces '===' también compara el tipo. Do '<=' and '> =' también comparar tipo? – user290870

+1

@ ash34: Sí, generalmente se recomienda usar '===' en lugar de '=='. También puede consultar esta referencia: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators. Primero note la parte donde dice: "Dos objetos son estrictamente iguales si se refieren al mismo Objeto". ... También verifique la descripción de los diferentes operadores de comparación. –

Cuestiones relacionadas