date time
by Roshan Karunarathna
JavaScript
/*----------------------------------function to process num of days into human readable counts-----------------*/
var _humanise=function(total_days,diff){
var d, h, m, s;
s = Math.floor(diff / 1000);
m = Math.floor(s / 60);
s = s % 60;
h = Math.floor(m / 60);
m = m % 60;
d = Math.floor(h / 24);
h = h % 24;
var date_current = new Date();
var utime_target = date_current.getTime() + total_days*86400*1000;
var date_target = new Date(utime_target);
var diff_year = parseInt(date_target.getUTCFullYear() - date_current.getUTCFullYear());
var diff_month = parseInt(date_target.getUTCMonth() - date_current.getUTCMonth());
var diff_day = parseInt(date_target.getUTCDate() - date_current.getUTCDate());
var diff_hour = parseInt(date_target.getUTCHours() - date_current.getUTCHours());
var diff_mins = parseInt(date_target.getUTCMinutes() - date_current.getUTCMinutes());
var days_in_month = [31, (date_target.getUTCFullYear()%4?29:28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var date_string = "";
while(true)
{
date_string = "";
date_string += (diff_year>0?diff_year + " years ":"");
if(diff_month<0){diff_year -= 1; diff_month += 12; continue;}
if(diff_day<0){diff_month -= 1; diff_day += days_in_month[((11+date_target.getUTCMonth())%12)]; continue;}
//if(diff_day<0){
date_string += (h>0?h + " hours":"");
date_string += (m>0?m + " minutes":"");
//}
if(diff_day>25){
date_string += (diff_month>0?(Number(diff_month) + 1)+ " months ":"");
}
else{
if(diff_day<10){
if(diff_month==1){
date_string += " a month ";
}
else{
date_string += (diff_month>0? diff_month + " months ":"");
}
}
else{
if(diff_month==1){
...