this code return array [minutes_ago,hours_ago,days_ago,month_ago,years_ago]
function get_minutes_ago(time_minutes){
if (time_minutes < 60)
{
return [time_minutes,0];
}else{
return [0,0];
}
}
function get_hours_ago(time_minutes){
if (time_minutes < (24 * 60) )
{
return [time_minutes / (60), (time_minutes % 60)];
}else{
return [0,0];
}
}
function get_days_ago(time_minutes){
if (time_minutes < (30 * 24 * 60) )
{
return [time_minutes / (24*60),(time_minutes % (24*60))];
}else{
return [0,0];
}
}
function get_month_ago(time_minutes){
if ( time_minutes < (12 * 30 * 24 * 60) )
{
return [time_minutes / (30*24*60),time_minutes % (30*24*60)];
}else{
return [0,0];
}
}
function get_years_ago(time_minutes){
if (time_minutes >= (12 * 30 * 24 * 60) )
{
return [time_minutes / (12*30*24*60),time_minutes % (12*30*24*60)];
}else{
return [0,0];
}
}
function getAge(dateString) {
tmp = new Date(dateString);
now = new Date();
var diff = now.getTime() - tmp.getTime();
var total_minutes = Math.floor(diff/60/1000)
var minutes_ago = 0;
var hours_ago = 0;
var days_ago = 0;
var month_ago = 0;
var years_ago = 0;
if ( total_minutes >= (12*30*24*60) ){
years_ago = get_years_ago(total_minutes)[0];
month_ago = get_month_ago(get_years_ago(total_minutes)[1])[0];
days_ago = get_days_ago(get_month_ago(get_years_ago(total_minutes)[1])[1])[0];
hours_ago = get_hours_ago(get_days_ago(get_month_ago(get_years_ago(total_minutes)[1])[1])[1])[0];
minutes_ago = get_minutes_ago(get_hours_ago(get_days_ago(get_month_ago(get_years_ago(total_minutes)[1])[1])[1])[1])[0];
}
if( total_minutes < (12*30*24*60) && total_minutes >= (30*24*60))
{
month_ago = get_month_ago(total_minutes)[0];
days_ago = get_days_ago(get_month_ago(total_minutes)[1])[0];
hours_ago = get_hours_ago(get_days_ago(get_month_ago(total_minutes)[1])[1])[0];
minutes_ago = get_minutes_ago(get_hours_ago(get_days_ago(get_month_ago(total_minutes)[1])[1])[1])[0];
}
if (total_minutes < (30*24*60) && total_minutes >= (24*60)){
days_ago = get_days_ago(total_minutes)[0];
hours_ago = get_hours_ago(get_days_ago(total_minutes)[1])[0];
minutes_ago = get_minutes_ago(get_hours_ago(get_days_ago(total_minutes)[1])[1])[0];
}
if( total_minutes < (24*60) && total_minutes >= 60){
hours_ago = get_hours_ago(total_minutes)[0];
minutes_ago = get_minutes_ago(get_hours_ago(total_minutes)[1])[0];
}
if(total_minutes < 60){
minutes_ago = get_minutes_ago(total_minutes)[0];
}
return [Math.floor(minutes_ago),Math.floor(hours_ago),Math.floor(days_ago),Math.floor(month_ago),Math.floor(years_ago)];
}
usage
getAge( Date.now() - ( 24 * 60 * 60 * 1000 ) ); // for return [0, 0, 1, 0, 0]
getAge(Date.now() - ( 30 * 24 * 60 * 60 * 1000 )) // for return [0, 0, 0, 1, 0]
or
var ss = new Date("2010/2/2");
getAge(ss.getTime()) // return [30, 9, 14, 6, 12]