JavaScript: Finding a difference between two dates in years -


i've got 2 timestamps e1 , e2 (both expressed in milliseconds since jan 1st 1970). want know difference between them in years (including parts of years - e.g. 2.74 acceptable result).

dividing (e2 - e1) 31536000000 not right idea because of leap years. there elegant solution ?

the ideas in comment nice. however, need determine if 1 of timestamps leap year. simple find difference between first date , second date, comparing timestamps without years. example: http://jsfiddle.net/en8qg/

function compareyears(t1, t2) {     var day = 24 * 3600 * 1000,         year = 365 * day,         d1 = new date(t1),         d2 = new date(t2),         y1 = d1.getfullyear(),         y2 = d2.getfullyear(),         isleap1 = new date(y1, 1, 29).getmonth() == 1,         isleap2 = new date(y2, 1, 29).getmonth() == 1,         ms1 = t1 - date.utc(y1, 0, 0),         ms2 = t2 - date.utc(y2, 0, 0),         diff = ms2 - ms1,         rest;      if (isleap1 && isleap2) { //two leap years         rest = diff / year;     } else if (isleap1) {          rest = diff / (year + day);     } else if (isleap2) {          rest = diff / (year + day);     } else {         rest = diff / year;     }     return y2 - y1 + rest; } 

Comments

Popular posts from this blog

php - render data via PDO::FETCH_FUNC vs loop -

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

The canvas has been tainted by cross-origin data in chrome only -