function fb_reltime(seconds,html)
{
if(!html) { var html = false; }
var now_date = new Date();
var TIME = Math.floor((new Date()).getTime() / 1000);
//var seconds = Math.floor(time_ms / 1000);
var time_ms = seconds * 1000;
var date = new Date(time_ms);
var reltime;
seconds = TIME - seconds;
var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var sdays= ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
if(seconds < 5) // Five or Less Seconds Ago
{
reltime = "just now";
}
else if(seconds < 60) // Less than a Minute Ago
{
reltime = seconds + " seconds ago";
}
else if(seconds <= 60*60) // Less than an Hour Ago
{
var minutes = Math.floor(seconds / 60);
if(minutes == 1) { reltime = "1 minute ago"; }
else { reltime = minutes + " minutes ago"; }
}
else if(((date.getDay() == now_date.getDay() - 1) || (date.getDay() == 6 && now_date.getDay() == 0)) && (seconds < 60*60*48)) // Yesterday
{
var thr = tfhr_to_thr(date.getHours());
reltime = "yesterday at " + thr[0] + ":" + ddigit(date.getMinutes()) + thr[1];
}
else if(seconds <= 60*60*24) // Less than a Day Ago
{
var hours = Math.floor((seconds / 60) / 60);
if((seconds / 60) / 60 < 1.5) { reltime = "about an hour ago"; }
else if(hours < 2) { reltime = "over an hour ago"; }
else { reltime = hours + " hours ago"; }
}
else if(seconds < 60*60*24*4) // Less than Four Days Ago
{
var thr = tfhr_to_thr(date.getHours());
reltime = sdays[date.getDay()] + " at " + thr[0] + ":" + ddigit(date.getMinutes()) + thr[1];
}
else if(date.getFullYear() < now_date.getFullYear()) // Over a Year Ago
{
var thr = tfhr_to_thr(date.getHours());
reltime = months[date.getMonth()] + " " + date.getDate() + ", " + date.getFullYear() + " at " + thr[0] + ":" + ddigit(date.getMinutes()) + thr[1];
}
else // Four+ Days Ago
{
var thr = tfhr_to_thr(date.getHours());
reltime = months[date.getMonth()] + " " + date.getDate() + " at " + thr[0] + ":" + ddigit(date.getMinutes()) + thr[1];
}
if(html)
{
return '' + reltime + '';
}
return reltime;
}
function tfhr_to_thr(hours)
{
var ampm;
var valreturn;
if(hours < 24 && hours > 11) { ampm = "pm"; }
else if(hours < 12 || hours == 24) { ampm = "am"; }
if(hours == 0) { returnval = "12"; }
else if(hours > 12) { returnval = hours - 12; }
else { returnval = hours; }
return [returnval,ampm];
}
function ddigit(int)
{
if(int < 10) { return "0" + int; } else { return int; }
}
function update_time()
{
if(document.getElementsByClassName)
{
for(var i = 0; i < document.getElementsByClassName("js-update-time").length; i++)
{
document.getElementsByClassName("js-update-time")[i].innerHTML = fb_reltime(document.getElementsByClassName("js-update-time")[i].getAttribute("data-epoch"));
}
}
}
if(document.getElementsByClassName)
{
setInterval(update_time,10000);
}
if(document.addEventListener)
{
document.addEventListener("DOMContentLoaded",update_time,false);
}