J'essaie mais ça ne fonctionne pas … pourquoi?
<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>
Et j'obtiens toujours ceci:
Sun Nov 28 2010 00:00:00 GMT+0900 (JST) Sun Nov 28 2010 00:00:00 GMT+0900 (JST) > >=
Les deux dates ne sont-elles pas les mêmes? Par conséquent, je devrais obtenir ==
imprimé, mais ça ==
pas …; (
Merci d'avance pour votre aide.
Ils ne correspondent jamais parce que vous comparez deux instances distinctes d'objets Date
.
Vous devez obtenir une valeur commune qui peut être comparée. Par exemple .toDateString()
.
today.toDateString() == today2.toDateString(); // true
Si vous comparez juste deux objets Date
distincts, même s'ils ont exactement la même valeur de date, ils sont encore différents.
Par exemple:
today == new Date( today ); // false
Ils sont la même valeur de date / heure, mais ne sont pas le même objet, donc le résultat est false
.
function today(td){ var d = new Date(); return td.getDate() == d.getDate() && td.getMonth() == d.getMonth() && td.getFullYear() == d.getFullYear(); }