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); }