nacho4d
nacho4d

Reputation: 45078

How to know date is today?

I am trying this but is not working... why?

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

And I always get this:

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

Aren't both dates to be the same? Hence, I should get == printed but is not happening... ;(

Thank you for your help in advance.

Upvotes: 24

Views: 27718

Answers (3)

Tanzeem Bhatti
Tanzeem Bhatti

Reputation: 219

You can do it by setting time to 00:00:00 for the given date and for today's date, and then compare them.

The code example is below:

function checkDateIsToday (today, givenDate) {
  
  if(today.setHours(0,0,0,0) === givenDate.setHours(0,0,0,0)) {
     console.log('Date is todays date');
  } else {
     console.log('Date is not todays date');
  } 

}

checkDateIsToday(new Date(), new Date('2020-07-10'));

Upvotes: 0

user2619282
user2619282

Reputation: 221

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

Upvotes: 22

user113716
user113716

Reputation: 322452

They will never match because you're comparing two separate Date object instances.

You need to get some common value that can be compared. For example .toDateString().

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

If you just compare two separate Date objects, even if they have the exact same date value, they are still different.

For example:

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

They are the same date/time value, but are not the same object, so the result is false.

Upvotes: 71

Related Questions