JSFiddle - React, Tailwind, and code Playground

by Andrew Gerst

JavaScript

function timeAgo(date1, date2, granularity){
    var difference = 0, output = '';
    var periods = {
        week: 604800,
        day: 86400,
        hour: 3600,
        minute: 60,
        second: 1
    };
    
    if (!granularity) granularity = 5;
    
    date1 = (typeof(date1) == 'string') ? new Date(date1).getTime() / 1000 : new Date().getTime() / 1000;
    date2 = (typeof(date2) == 'string') ? new Date(date2).getTime() / 1000 : new Date().getTime() / 1000;
    
    if (date1 > date2) difference = date1 - date2;
    else difference = date2 - date1;
    alert(difference);
    for (var period in periods){
        var value = periods[period];
        
        if (difference >= value){
            var time = Math.floor(difference / value);
            difference %= value;
            
            output += time + ' ';
            
            if (time > 1) output += period + 's ';
            else output += period + ' ';

            granularity--;
            if (granularity == 0) break;
        } else alert('not big');
    }
    
    return output + ' ago';
}

alert(timeAgo(23234234,234234234234));