Dark Launch

This is a Dark Launch.

Parse Twitter created_at value into friendly time format; relative time; time ago

Javascript
 
// from http://widgets.twimg.com/j/1/widget.js
var K = function () {
var a = navigator.userAgent;
return {
ie: a.match(/MSIE\s([^;]*)/)
}
}();
 
var H = function (a) {
var b = new Date();
var c = new Date(a);
if (K.ie) {
c = Date.parse(a.replace(/( \+)/, ' UTC$1'))
}
var d = b - c;
var e = 1000,
minute = e * 60,
hour = minute * 60,
day = hour * 24,
week = day * 7;
if (isNaN(d) || d < 0) {
return ""
}
if (d < e * 7) {
return "right now"
}
if (d < minute) {
return Math.floor(d / e) + " seconds ago"
}
if (d < minute * 2) {
return "about 1 minute ago"
}
if (d < hour) {
return Math.floor(d / minute) + " minutes ago"
}
if (d < hour * 2) {
return "about 1 hour ago"
}
if (d < day) {
return Math.floor(d / hour) + " hours ago"
}
if (d > day && d < day * 2) {
return "yesterday"
}
if (d < day * 365) {
return Math.floor(d / day) + " days ago"
} else {
return "over a year ago"
}
};
 
console.log(H("Wed, 08 Apr 2009 19:22:10 +0000"));
console.log(H("Thu, 20 May 2010 19:22:10 +0000"));

Comments


  1. Thanks a bunch for this!

  2. Thank you very much

  3. Here's the PHP version:

    function ago($a) {

    $b = strtotime("now");
    $c = strtotime($a);
    $d = $b - $c;
    $minute = 60;
    $hour = $minute * 60;
    $day = $hour * 24;
    $week = $day * 7;

    if(is_numeric($d) && $d > 0) {

    if($d < 3) return "right now";
    if($d < $minute) return floor($d) . " seconds ago";
    if($d < $minute * 2) return "about 1 minute ago";
    if($d < $hour) return floor($d / $minute) . " minutes ago";
    if($d < $hour * 2) return "about 1 hour ago";
    if($d < $day) return floor($d / $hour) . " hours ago";
    if($d > $day && $d < $day * 2) return "yesterday";
    if($d < $day * 365) return floor($d / $day) . " days ago";

    return "over a year ago";
    }
    }

  4. Sorry Im not sure exactly how to use this?

  5. to use:
    created_at = "Wed, 08 Apr 2009 19:22:10 +0000";
    alert(H(created_at));

  6. thank u sir

  7. Thank you!

  8. Gracias!

  9. Compiled JavaScript Code has been changed:
    var X = function () {
    var Z = navigator.userAgent;
    return {
    ie: Z.match(/MSIE\s([^;]*)/)
    }
    }();
    var I = function (f) {
    var h = new Date();
    var d = new Date(f);
    if (X.ie) {
    d = Date.parse(f.replace(/( \+)/, " UTC$1"))
    }
    var g = h - d;
    var a = 1000,
    b = a * 60,
    c = b * 60,
    e = c * 24,
    Z = e * 7;
    if (isNaN(g) || g < 0) {
    return ""
    }
    if (g < a * 7) {
    return "right now"
    }
    if (g < b) {
    return Math.floor(g / a) + " seconds ago"
    }
    if (g < b * 2) {
    return "about 1 minute ago"
    }
    if (g < c) {
    return Math.floor(g / b) + " minutes ago"
    }
    if (g < c * 2) {
    return "about 1 hour ago"
    }
    if (g < e) {
    return Math.floor(g / c) + " hours ago"
    }
    if (g > e && g < e * 2) {
    return "yesterday"
    }
    if (g < e * 365) {
    return Math.floor(g / e) + " days ago"
    } else {
    return "over a year ago"
    }
    };