Time Diffrent
by Parsa
JavaScript
function timeDifference(current, previous) {
var msPerMinute = 60 * 1000;
var msPerHour = msPerMinute * 60;
var msPerDay = msPerHour * 24;
var msPerMonth = msPerDay * 30;
var msPerYear = msPerDay * 365;
var elapsed = current - previous;
if (elapsed < msPerMinute) {
return Math.round(elapsed/1000) + ' seconds ago';
}
else if (elapsed < msPerHour) {
return Math.round(elapsed/msPerMinute) + ' minutes ago';
}
else if (elapsed < msPerDay ) {
return Math.round(elapsed/msPerHour ) + ' hours ago';
}
else if (elapsed < msPerMonth) {
return 'approximately ' + Math.round(elapsed/msPerDay) + ' days ago';
}
else if (elapsed < msPerYear) {
return 'approximately ' + Math.round(elapsed/msPerMonth) + ' months ago';
}
else {
return 'approximately ' + Math.round(elapsed/msPerYear ) + ' years ago';
}
}
// TESTS
var current= new Date(2011, 04, 24, 12, 30, 30, 30);
alert(timeDifference(current, new Date(2011, 04, 24, 12, 30, 00, 00)));
alert(timeDifference(current, new Date(2011, 04, 24, 12, 00, 00, 00)));
alert(timeDifference(current, new Date(2011, 04, 24, 11, 00, 00, 00)));
alert(timeDifference(current, new Date(2011, 04, 23, 12, 00, 00, 00)));
alert(timeDifference(current, new Date(2011, 03, 24, 12, 00, 00, 00)));
alert(timeDifference(current, new Date(2010, 03, 24, 12, 00, 00, 00)));