Nodejs Time Calculate time_since()

Here you can find the source of time_since()

Method Source Code

// Port of django's timesince
var chunks = [/*from   w w  w  .  ja va2 s  . c  o m*/
  [60 * 60 * 24 * 365, 'year'],
  [60 * 60 * 24 * 30, 'month'],
  [60 * 60 * 24 * 7, 'week'],
  [60 * 60 * 24, 'day'],
  [60 * 60, 'hour'],
  [60, 'minute']
];

Date.prototype.time_since = function() {
  var delta = Math.floor((Date.now() - this.getTime()) / 1000);
  if (delta <= 0) {
    return '0 minutes ago';
  }
  var last, count;
  chunks.some(function(chunk, i){
    count = Math.floor(delta / chunk[0]);
    last = i;
    return count != 0;
  });
  var str = count + ' ' + (count == 1 ? chunks[last][1] : chunks[last][1] + 's');

  if (last + 1 < chunks.length) {
    var chunk = chunks[last + 1];
    var second = Math.round((delta - (chunks[last][0] * count)) / chunk[0]);
    if (second != 0)
      str += ', ' + second + ' ' + (second == 1 ? chunk[1] : chunk[1] + 's');
  }

  return str + ' ago';
};

Related

  1. timeSince(date)
    String.prototype.startsWith = function (str){
      return this.indexOf(str) === 0;
    };
    timeSince = function (date) {
      var seconds = Math.floor((new Date() - date) / 1000);
      var interval = Math.floor(seconds / 31536000);
      if (interval >= 1) {
          if(interval == 1){
            return "about " + interval + " year ago";
    ...
    
  2. timeStr()
    var DAY_WIDTH = 100;
    var DAY_HEIGHT = 80;
    var SIDE_DELTA = 2;
    var DAY_HEADING = ["SUN",
                       "MON",
                       "TUE",
                       "WED",
                       "THU",
                       "FRI",
    ...
    
  3. timeToJSON()
    Date.prototype.timeToJSON = function() {
      return this.toLocaleTimeString().substring(0,5);
    };
    
  4. timeToMidnight()
    Date.prototype.timeToMidnight = function() {
        this.setHours(0);
        this.setMinutes(0);
        this.setMilliseconds(0);
    };
    
  5. time_ago_in_words(date)
    function time_between_in_words(from_date, to_date)
      return format_milliseconds(Math.abs(from_date.getTime()-to_date.getTime()));
    function time_ago_in_words(date)
      return format_milliseconds(Math.abs(Date.now()-date.getTime()));
    function format_milliseconds(milsecs)
    ...
    
  6. timesince(now)
    Date.prototype.timesince = function(now) {
      var chunks = [
        [ 60 * 60 * 24 * 365, 'year', 'years'],
        [ 60 * 60 * 24 * 30, 'month', 'months' ],
        [ 60 * 60 * 24, 'day', 'days' ],
        [ 60 * 60, 'hour', 'hours' ],
        [ 60, 'minute', 'minutes' ]
      ];
      now = now || new Date();
    ...
    
  7. withoutTime()
    Date.prototype.withoutTime = function () {
        var d = new Date(this);
        d.setHours(0, 0, 0, 0);
        return d;
    
  8. xsdDateTime()
    Date.prototype.xsdDateTime = function() {
        var yyyy = this.getFullYear().toString();
        var mm = (this.getMonth()+1).toString(); 
        var dd = this.getDate().toString();
        var hh = this.getHours().toString();
        var min = this.getMinutes().toString();
        var sec = this.getSeconds().toString();
        return yyyy + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]) + 'T' + (hh[1]?hh:"0"+hh[0]) + ':' + (min[1]?min:"0"+min[0]) + ':' + (sec[1]?sec:"0"+sec[0]); 
      };
    ...