JSFiddle - React, Tailwind, and code Playground
HTML
<span class="datereplace" title="Thu Aug 05 2010 12:36:20 GMT+0000">Aug 05 2010</span><br />
<span class="datereplace" title="Thu Sep 01 2010 12:36:20 GMT+0000">Sep 01 2010</span><br />
<span class="datereplace" title="Thu Sep 28 2010 12:36:20 GMT+0000">Sep 28 2010</span>
JavaScript
$(function() {
var doReplace = function() {
var jSpan = $(this);
var replaceDate = function(i,s) {
var intCount = i;
var strUnits = s;
jSpan.text(intCount + ' ' + strUnits + (i > 1 ? 's' : '') + ' ago');
};
var strTime = jSpan.attr('title');
var intPostingDate = new Date(strTime).getTime();
var intElapsedTime = new Date().getTime() - intPostingDate;
var intYears = Math.floor(intElapsedTime / 31536000000);
if (intYears > 0) { return replaceDate(intYears,'year')};
var intMonths = Math.floor(intElapsedTime / 2592000000);
if (intMonths > 0) { return replaceDate(intMonths,'month')};
var intWeeks = Math.floor(intElapsedTime / 604800000);
if (intWeeks > 0) { return replaceDate(intWeeks,'week')};
var intDays = Math.floor(intElapsedTime / 86400000);
if (intDays > 0) { return replaceDate(intDays,'day')};
var intHours = Math.floor(intElapsedTime / 3600000);;
if (intHours > 0) { return replaceDate(intHours,'hour')};
var intMinutes = Math.floor(intElapsedTime / 60000);
if (intMinutes > 0) { return replaceDate(intMinutes,'minute')};
};
$('span.datereplace').each(doReplace)
});