Nodejs Date Convert toRelativeTime( now_threshold )

Here you can find the source of toRelativeTime( now_threshold )

Method Source Code

Date.prototype.toRelativeTime = function( now_threshold ) {
   var delta = new Date() - this;
   //  w w  w.ja v a2  s.c  o  m
   now_threshold = parseInt(now_threshold, 10);
   
   if (isNaN(now_threshold)) {
      now_threshold = 0;
   }
   
   if (delta <= now_threshold) {
      return 'Just now';
   }
   
   var units = null;
   var conversions = {
       millisecond : 1, // ms -> ms
       second : 1000, // ms -> sec
       minute : 60, // sec -> min
       hour : 60, // min -> hour
       day : 24, // hour -> day
       month : 30, // day -> month (roughly)
       year : 12
   // month -> year
   };
   
   for ( var key in conversions) {
      if (delta < conversions[key]) {
         break;
      }
      else {
         units = key; // keeps track of the selected key over the
                     // iteration
         delta = delta / conversions[key];
      }
   }
   
   // pluralize a unit when the difference is greater than 1.
   delta = Math.floor(delta);
   if (delta !== 1) {
      units += "s";
   }
   return [ delta, units ].join(" ");
};

/*
 * Wraps up a common pattern used with this plugin whereby you take a String
 * representation of a Date, and want back a date object.
 */
Date.fromString = function( str ) {
   return new Date(Date.parse(str));
};

Related

  1. toOADate()
    Date.prototype.toOADate = function ()
      var jsDate = this || new Date();
      var timezoneOffset = jsDate.getTimezoneOffset() / (60 * 24);
      var msDateObj = (jsDate.getTime() / 86400000) + (25569 - timezoneOffset);
      return msDateObj;
    
  2. toRFC2822()
    Date.prototype.toRFC2822 = function() {    
        return [
              Date.DAYS[this.getDay()] + ","
            , Date.padZero(this.getDate())
            , Date.MONTHS[this.getMonth()]
            , this.getFullYear()
            , this.getTimeString()
            , this.getTimezoneOffsetString()
        ].join(" ");
    ...
    
  3. toRFC3339()
    Date.prototype.toRFC3339 = function()
      var year = this.getFullYear();
      var month = this.getMonth()+1;  
      var date = this.getDate();
      var hours = this.getHours();
      var mins = this.getMinutes();
      var secs = this.getSeconds();
      return (year+'-'+month+'-'+date+' '+hours+':'+mins+':'+secs);
    ...
    
  4. toRails(name)
    Date.prototype.toRails = function(name) {
       var dateParams;
       dateParams = {};
       dateParams[name + "(1i)"] = this.getFullYear();
       dateParams[name + "(2i)"] = this.getMonth() + 1;
       dateParams[name + "(3i)"] = this.getDate();
       dateParams[name + "(4i)"] = this.getHours();
       dateParams[name + "(5i)"] = this.getMinutes();
       return dateParams;
    ...
    
  5. toReadableTime()
    Date.prototype.toReadableTime = function() {
      if(this.getHours()>0) {
        return this.getHours()+"h "+this.getMinutes()+" min"
      } else {
        return this.getMinutes()+" min"
    
  6. toRelativeTime()
    Date.prototype.toRelativeTime = function() {
      var delta       = new Date() - this;
      var units       = null;
      var conversions = {
        millisecond: 1, 
        second: 1000,   
        minute: 60,     
        hour:   60,     
        day:    24,     
    ...
    
  7. toRelativeTime(now_threshold)
    Date.prototype.toRelativeTime = function(now_threshold) {
      var delta = new Date() - this;
      now_threshold = parseInt(now_threshold, 10);
      if (isNaN(now_threshold)) {
        now_threshold = 0;
      if (delta <= now_threshold) {
        return 'Just now';
      var units = null;
      var conversions = {
        millisecond: 1, 
        second: 1000,   
        minute: 60,     
        hour:   60,     
        day:    24,     
        month:  30,     
        year:   12      
      };
      for (var key in conversions) {
        if (delta < conversions[key]) {
          break;
        } else {
          units = key; 
          delta = delta / conversions[key];
      delta = Math.floor(delta);
      if (delta !== 1) { units += "s"; }
      return [delta, units, "ago"].join(" ");
    };
    
  8. toRelativeTime(now_threshold)
    Date.prototype.toRelativeTime = function(now_threshold) {
      var delta = new Date() - this;
      now_threshold = parseInt(now_threshold, 10);
      if (isNaN(now_threshold)) {
        now_threshold = 0;
      if (Math.abs(delta) <= now_threshold) {
        return 'Just now';
      var units = null;
      var conversions = {
        millisecond: 1, 
        second: 1000,   
        minute: 60,     
        hour:   60,     
        day:    24,     
        month:  30,     
        year:   12      
      };
      for (var key in conversions) {
        if (Math.abs(delta) < conversions[key]) {
          break;
        } else {
          units = key; 
          delta = delta / conversions[key];
      delta = delta > 0 ? Math.floor(delta) : Math.ceil(delta);
      if (Math.abs(delta) !== 1) { units += "s"; }
      if (delta > 0) {
        return [delta, units, "ago"].join(" ");
      } else {
        return ["in", -delta, units].join(" ");
    };
    Date.fromString = function(str) {
      return new Date(Date.parse(str));
    };
    
  9. toShortTime()
    Date.prototype.toShortTime = function() {
        return ('0' + this.getHours()).slice(-2) + ':' + ('0' + this.getMinutes()).slice(-2);