Link to home
Start Free TrialLog in
Avatar of hankknight
hankknightFlag for Canada

asked on

JavaScript: Minutes / Hours Ago from String

Using JavaScript, I would like to know how many minutes or hours ago a time and date are, if the time is less than 24 hours old.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">


function resetTime(d) {
    d = new Date(d);
    d.setHours(0);
    d.setMinutes(0);
    d.setSeconds(0);
    d.setMilliseconds(0);
    return d;
}


function formatDateTime(strDate,strCurrent) {
    var dS = resetTime(strDate);
    var dC = resetTime(strCurrent);
    var dt = (dC-dS)/(24*3600*1000); 
    var arr = ["Today", "Yesterday", "Two Days Ago", "Three Days Ago"];
    
    return (dt>=0&&dt<4)?arr[dt]:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","December"][dS.getMonth(dS)] + " " + dS.getDate() + ", " + dS.getFullYear();
}

alert( formatDateTime('9/2/2013 3:00:01 PM',  '9/2/2013 3:00:07 PM' )); // Just Posted
alert( formatDateTime('9/2/2013 2:59:07 AM',  '9/2/2013 3:00:07 PM' )); // 1 Minute Ago
alert( formatDateTime('9/2/2013 2:12:07 AM',  '9/2/2013 3:00:07 PM' )); // 48 Minutes Ago
alert( formatDateTime('9/2/2013 2:00:01 PM',  '9/2/2013 3:00:07 PM' )); // 1 Hour Ago
alert( formatDateTime('9/2/2013 1:00:01 AM',  '9/2/2013 3:00:07 PM' )); // 14 Hours Ago
alert( formatDateTime('9/1/2013 11:00:07 PM', '9/2/2013 3:00:07 PM' )); // Yesterday
alert( formatDateTime('8/31/2013 11:00:07 PM', '9/2/2013 3:00:07 PM' )); // Two Days Ago
alert( formatDateTime('8/30/2013 11:00:07 PM', '9/2/2013 3:00:07 PM' )); // Three Days Ago
alert( formatDateTime('8/29/2013 11:00:07 PM', '9/2/2013 3:00:07 PM' )); // Aug 29, 2013


</script>
</head>
<body>
</body>
</html>

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of leakim971
leakim971
Flag of Guadeloupe image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial