Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get the how many days until my next birthday?

Tags:

javascript

I tried this but it fails

var diffDays1=(function(){ 
var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var secondDate = new Date(new Date().getFullYear()+1,4,5);
var firstDate = new Date();
 return Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
})();

Wolfram alpha says it's 330 days, diffDays1 shows it's 359. This is probably due to daylight savings or something. Is there a way to accurately calculate days since without doing it server side.

like image 281
BreezyChick89 Avatar asked May 10 '13 14:05

BreezyChick89


1 Answers

The problem is that you're basing the month on April being 4, when April is 3 in Javascript. See https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date#Parameters

var diffDays1=(function(){ 
    var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
    var secondDate = new Date(new Date().getFullYear()+1,3,5);
    var firstDate = new Date();
    return Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
})();
like image 195
user694844 Avatar answered Oct 24 '22 10:10

user694844