src/diff.js
/*
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/
/* jslint esnext: true */
var round = Math.round;
function daysToYears(days) {
// 400 years have 146097 days (taking into account leap year rules)
return days * 400 / 146097;
}
export default function (from, to) {
// Convert to ms timestamps.
from = +from;
to = +to;
var millisecond = round(to - from),
second = round(millisecond / 1000),
minute = round(second / 60),
hour = round(minute / 60),
day = round(hour / 24),
week = round(day / 7);
var rawYears = daysToYears(day),
month = round(rawYears * 12),
year = round(rawYears);
return {
millisecond : millisecond,
second : second,
'second-short' : second,
minute : minute,
'minute-short' : minute,
hour : hour,
'hour-short' : hour,
day : day,
'day-short' : day,
week : week,
'week-short' : week,
month : month,
'month-short' : month,
year : year,
'year-short' : year
};
}