JSFiddle - React, Tailwind, and code Playground
HTML
<div class="ui-timeago">1428544787</div>
<div class="ui-timeago">2015-04-09 02:59:47</div>
JavaScript
(function(){
var useAbbr = true;
//from jQuery
var isNumeric = function(obj){ return (obj - parseFloat(obj) + 1) >= 0; };
var secondsToString = function(sec)
{
var weeks = Math.floor(sec / 604800);
sec -= (weeks * 604800);
var days = Math.floor(sec / 86400);
sec -= (days * 86400);
var hours = Math.floor(sec / 3600);
var minutes = Math.floor((sec - (hours * 3600)) / 60);
var buffer = '';
if (!useAbbr)
{
if (weeks > 1) buffer += weeks + ' weeks ';
if (weeks == 1) buffer += '1 week ';
if (days > 1) buffer += days + ' days ';
if (days == 1) buffer += '1 day ';
if (hours > 1) buffer += hours + ' hours ';
if (hours == 1) buffer += '1 hour ';
if (minutes > 1) buffer += minutes + ' minutes ';
if (minutes == 1) buffer += '1 minute';
}
else
{
if (weeks >= 1) buffer += weeks + 'w ';
if (days >= 1) buffer += days + 'd ';
if (hours >= 1) buffer += hours + 'h ';
if (minutes >= 1) buffer += minutes + 'm ';
}
return buffer;
};
setInterval(function()
{
var times = document.getElementsByClassName("ui-timeago");
//loop thru .ui-timeago
for (var x = 0; x < times.length; x++)
{
var innerHTML, d, attr, now = new Date();
if (times[x].hasAttribute("data-timestamp"))
innerHTML = times[x].getAttribute("data-timestamp");
else
innerHTML = times[x].innerHTML;
//is UNIX or MySQL Timestamp
if (isNumeric(innerHTML))
{
d = new Date(parseInt(innerHTML) * 1000);
d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);
}
else
{
var t = innerHTML.split(/[- :]/);
d = new Date(parseInt(t[0]), parseInt(t[1]) -...