Nodejs Time Format timeAgo(options)

Here you can find the source of timeAgo(options)

Method Source Code

// translate a UTC timestamp to a relative time
// ex: (new Date().getTime()/1000 - 10).timeAgo()
//     > 10s ago
Number.prototype.timeAgo = function(options) {
  var now  = new Date(),
      diff = now.getTime()/1000 - this,/*from w ww .  j  a v a  2 s.c  o m*/
      str  = '';

  options = options || {};
  diff    = diff < 0 ? 0 : diff;

  if(diff < 60)
    str = Math.round(diff) + 's';
  else if(diff < 3600) {
    var mins = Math.round(diff/60);
    str = mins + 'm';
  }
  else if(diff < 86400) {
    var hours = Math.round(diff/3600);
    str = hours + 'h';
  }
  else {
    var days = Math.round(diff/86400),
        yrs  = Math.floor(days/365);

    days = days - 365*yrs;
    str  = (yrs && yrs+'y ' || '') + days + 'd';
  }
  if(options.suffix !== false) str += ' ago';

  return str;
};

Related

  1. toTimeRemain()
    Number.prototype.toTimeRemain = function () {
        var sec_num = parseInt(this, 10); 
        var hours   = Math.floor(sec_num / 3600);
        var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
        var seconds = sec_num - (hours * 3600) - (minutes * 60);
        if (hours   < 10) {hours   = hours;}
        if (minutes < 10) {minutes = minutes;}
        if (seconds < 10) {seconds = '0' + seconds;}
        var time = minutes+':'+seconds;
    ...
    
  2. toTimerFormat()
    projectName = 'Meteoro';
    projectSlogan = 'Pomodoro App on Meteor';
    Number.prototype.toTimerFormat = function () {
        var sec_num = parseInt(this, 10); 
        var hours   = 0;
        var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
        var seconds = sec_num - (hours * 3600) - (minutes * 60);
        if (minutes < 10) {minutes = "0"+minutes;}
        if (seconds < 10) {seconds = "0"+seconds;}
    ...
    
  3. formatAsTime()
    Number.prototype.formatAsTime = function() {
      var secs = Math.floor(this);
      if (secs < 0) {
        return "Indefinite";
      } else if (secs === 0) {
        return "0s";
      var days = Math.floor(secs / 86400);
      var hours = Math.floor((secs % 86400) / 3600);
    ...
    
  4. hour()
    Number.prototype.hour = Number.prototype.hours = function() {
      return (this * 3600 * 1000);
    };
    
  5. hours()
    Number.prototype.hours = function () {
      var i = this.valueOf();
      var t = new Date(1000 * 60 * 60 * i);
      return new Date(t).getTime();
    };
    
  6. strftime(fmt)
    Number.prototype.strftime = function(fmt){
        var d  = new Date(this*1000);
        return d.strftime(fmt);
    };
    
  7. strftime( ()
    Date.prototype.strftime = (function () {
      function strftime(format) {
        var date = this;
        return (format + "").replace(/%([a-zA-Z])/g,
        function (m, f) {
          var formatter = Date.formats && Date.formats[f];
          if (typeof formatter == "function") {
            return formatter.call(Date.formats, date);
          } else if (typeof formatter == "string") {
    ...
    
  8. strftime( ()
    Date.prototype.strftime = (function () {
      function strftime(format) {
        var date = this;
        return (format + "").replace(/%([a-zA-Z])/g,
            function (m, f) {
          var formatter = Date.formats && Date.formats[f];
          if (typeof formatter == "function") {
            return formatter.call(Date.formats, date);
          } else if (typeof formatter == "string") {
    ...
    
  9. strftime( ()
    Date.prototype.strftime = (function () {
      function strftime(format) {
        var date = this;
        return (format + "").replace(/%([a-zA-Z])/g, function (m, f) {
          var formatter = Date.formats && Date.formats[f];
          if (typeof formatter == "function") {
            return formatter.call(Date.formats, date);
          } else if (typeof formatter == "string") {
            return date.strftime(formatter);
    ...