Dhruv Batra
Dhruv Batra

Reputation: 23

countdown timer from current date to specific date in javascript

// this is what I thought of .. but I guess the current date format and the specified date format are different. Help Please.

    `<script>
     var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
     var firstDate = new Date();
     var secondDate = new Date(2016,02,20);
     var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
     document.getElementById("demo").innerHTML =diffDays;
     </script>`

Upvotes: 1

Views: 754

Answers (3)

Sandip Nirmal
Sandip Nirmal

Reputation: 2459

You can use something like

(new Date(new Date(2016, 01, 05).toDateString()).getTime() - new Date(new Date().toDateString()))/(24*60*60*1000)

There is difference between time returned by new Date() and new Date(yyyy, mm, dd). As first will return date with current time, second will return date with time as 00:00 am. Which will make difference in timestamp, hence result will vary.

And if you have more date related operations you can always use momentjs.

Upvotes: 0

Viktor Kukurba
Viktor Kukurba

Reputation: 1370

Date.prototype.getTime() returns difference in miliseconds, so you should devide time difference on oneDay (1000 * 3600 * 24).

  var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
  var firstDate = new Date();
  var secondDate = new Date(2016,02,20);
  var diffDays = Math.abs(firstDate - secondDate);
  document.getElementById("demo").innerHTML = Math.round (diffDays/oneDay);

Upvotes: 1

Rajesh Jangid
Rajesh Jangid

Reputation: 724

You can do something like this -

<script>
   var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
   var firstDate = new Date();
   var secondDate = new Date(2016,02,20);
   var diffDays = 'expired';
   if(secondDate>=firstDate){
      diffDays = parseInt((secondDate - firstDate)/oneDay) + ' days left';
   }
   document.getElementById("demo").innerHTML =diffDays;
</script>

here is the fiddle fiddle

Upvotes: 0

Related Questions