Reputation: 23
// 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
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
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
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