Come sapere la data di oggi?

Sto cercando questo, ma non funziona… perchè?

<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>

E ho sempre questo:

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

Non sono per entrambe le date per essere la stessa cosa? Quindi, mi dovrebbe arrivare == stampato ma non succede… ;(

Grazie per il vostro aiuto in anticipo.

  • Hai chiesto un modo per calcolare la differenza tra due date o un modo per determinare se una data è oggi? Per la prima domanda, vedi: stackoverflow.com/questions/41948/…. Per il secondo, controllare la mia risposta.
  • Grazie a tutti per le risposte… questo era una specie di js esperimento 😉
InformationsquelleAutor nacho4d | 2010-11-27



2 Replies
  1. 68

    Non saranno mai partita, perché si stanno confrontando due distinte Date istanze di oggetti.

    È necessario per avere un valore comune che può essere paragonato. Per esempio .toDateString().

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

    Se si basta confrontare i due separati Date oggetti, anche se essi hanno lo stesso valore di data, sono ancora diversi.

    Per esempio:

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

    Sono lo stesso valore di data/ora, ma non sono lo stesso oggetto, quindi il risultato è false.

    • Questa è la risposta corretta
    • C’è un meccanico per fare l’override OP selezione?
  2. 22
    function today(td) {
        var d = new Date();
        return td.getDate() == d.getDate() && td.getMonth() == d.getMonth() && td.getFullYear() == d.getFullYear();
    }
    • Questa soluzione è più veloce di oggi.toDateString() == today2.toDateString(); test di Performance risultato jsbench.mi mostra che il confronto di stringhe è per il 99% più lento. jsben.ch dell ‘ 80% più lento.

Lascia un commento