Moment: рдЕрдм рд╕реЗ рдПрдХрд▓ рдкрддреНрд░ () рдкреНрд░рд╛рд░реВрдк

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдирд╡ре░ 2015  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moment/moment

moment().fromNow(); рд╕рд╛рде рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕

рдЙрджрд╛рд╣рд░рдг: 1 hour , 1 day , 1 week рд╡рд┐рдкрд░реАрддред 1h , 1d , 1w ред

рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдРрд╕реА рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХ рдЕрдХреНрд╖рд░ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдк рдЗрд╕реЗ рд▓реЛрдХреЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  moment.locale('en', {
    relativeTime: {
      future: 'in %s',
      past: '%s ago',
      s:  'seconds',
      ss: '%ss',
      m:  'a minute',
      mm: '%dm',
      h:  'an hour',
      hh: '%dh',
      d:  'a day',
      dd: '%dd',
      M:  'a month',
      MM: '%dM',
      y:  'a year',
      yy: '%dY'
    }
  });

рд╕рднреА 21 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкрд▓ рдореЗрдВ рдЕрднреА рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред
рдЖрдк http://momentjs.com/docs/#/displaying/fromnow/ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ

рдЕрд╕рд▓ рдореЗрдВ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд╛рд░реНрдп рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд▓ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдкрд▓ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ "рдХреБрдЫ рд╕реЗрдХрдВрдб" рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рд▓реЗрдмрд▓ рдХреНрдпрд╛ рд╣реИ?

рдпрд╣ рдПрдХ "s" рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг: 5s, 35s) рд▓реЗрдХрд┐рди, рдЗрд╕рдореЗрдВ рд╕реЗрдХрдВрдбреНрд╕ рдХреА рдорд╛рддреНрд░рд╛ рд╣реЛрдЧреАред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЕрдЪрд▓ рд╕рдВрдкрддреНрддрд┐ рдХреА рдЫреЛрдЯреА рд░рд╛рд╢рд┐ рд╕реЗ рдирд┐рдкрдЯрдирд╛ред

рдЖрдк рдЗрд╕реЗ рд▓реЛрдХреЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  moment.locale('en', {
    relativeTime: {
      future: 'in %s',
      past: '%s ago',
      s:  'seconds',
      ss: '%ss',
      m:  'a minute',
      mm: '%dm',
      h:  'an hour',
      hh: '%dh',
      d:  'a day',
      dd: '%dd',
      M:  'a month',
      MM: '%dM',
      y:  'a year',
      yy: '%dY'
    }
  });

рд╣рд╛рдВ, рд▓реЛрдХреЗрд▓ рд╕реЗрдЯрд┐рдВрдЧ рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛ рд╣реИред

рджреЗрдЦреЗрдВ: http://momentjs.com/docs/#/customization/relative -time/

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдХреЛрд░ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдпреЗ рдЗрдВрд╕реНрдЯрд╛рдЧреНрд░рд╛рдо рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рдЫреЛрдЯреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрддрд╛рдХреНрд╖рд░ рдЗрди рджрд┐рдиреЛрдВ рдХрд╛рдлреА рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рд╣реИрдВред

рд╣рд╛рдВ, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди... рдпрджрд┐ рдЖрдкрдХреЗ рдРрдк рдХреЛ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЕрдЪрд╛рдирдХ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкрд▓ рдХреЗ рд╕рдореБрджрд╛рдп рдХреА рд╢рдХреНрддрд┐ рдЙрд╕ рдмреЛрдЭ рдХреЛ рдЙрдард╛ рд▓реЗред

рди рдХреЗрд╡рд▓ рдРрд╕реЗ рдРрдкреНрд╕ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХрд╛рдзрд┐рдХ рд▓реЛрдХреЗрд╢рдВрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд┐рди рдРрдкреНрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдЫреЛрдЯреЗ рдФрд░ рд▓рдВрдмреЗ рдкреНрд░рд╛рд░реВрдк рджреЛрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рднреА рдЗрд╕рд╕реЗ рд▓рд╛рдн рд╣реЛрдЧрд╛ред рдЕрднреА, рдореБрдЭреЗ рдЕрдкрдиреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

+1 - рдЗрд╕ рддрд░рд╣ рдХреА рдХрд┐рд╕ рдЪреАрдЬ рдиреЗ рдкрд▓ рдХреЛ рдЗрддрдирд╛ рдорд╣рд╛рди рдмрдирд╛ рджрд┐рдпрд╛

+1 (рдФрд░ рдмрдореНрдк), рдЗрд╕реЗ рд╣реЛрддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рднреА рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ

+1 - рдЕрднреА рдЗрд╕рдХреА рддрд▓рд╛рд╢ рд╣реИред

:+1:

рдореИрдВ

+1

+999999999999999

+1 рдХреГрдкрдпрд╛

+1

var timeSince = function(date) {
  if (typeof date !== 'object') {
    date = new Date(date);
  }

  var seconds = Math.floor((new Date() - date) / 1000);
  var intervalType;

  var interval = Math.floor(seconds / 31536000);
  if (interval >= 1) {
    intervalType = 'y';
  } else {
    interval = Math.floor(seconds / 2592000);
    if (interval >= 1) {
      intervalType = 'm';
    } else {
      interval = Math.floor(seconds / 86400);
      if (interval >= 1) {
        intervalType = 'd';
      } else {
        interval = Math.floor(seconds / 3600);
        if (interval >= 1) {
          intervalType = "h";
        } else {
          interval = Math.floor(seconds / 60);
          if (interval >= 1) {
            intervalType = "m";
          } else {
            interval = seconds;
            intervalType = "now";
          }
        }
      }
    }
  }

  if (interval > 1 || interval === 0) {
    intervalType += 's';
  }

  return interval + ' ' + intervalType;
};

рд╕реНрд░реЛрдд: https://stackoverflow.com/questions/3177836/how-to-format-time-since-xxx-eg-4-minutes-ago-similar-to-stack-exchange-site

+1 рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

@dlindahl рднрдпрд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдЕрдм рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рджрд┐рдирд╛рдВрдХ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдФрд░ рдЬрд░реНрдорди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛:

  moment.updateLocale('en', {
    relativeTime: {
      future : 'in %s',
      past   : '%s ago',
      s  : function (number, withoutSuffix) {
        return withoutSuffix ? 'now' : 'a few seconds';
      },
      m  : '1m',
      mm : '%dm',
      h  : '1h',
      hh : '%dh',
      d  : '1d',
      dd : '%dd',
      M  : '1mth',
      MM : '%dmth',
      y  : '1y',
      yy : '%dy'
    }
  });
  moment.updateLocale('de', {
    relativeTime: {
      future : 'in %s',
      past : 'vor %s',
      s  : function (number, withoutSuffix) {
        return withoutSuffix ? 'jetzt' : 'ein paar Sekunden';
      },
      m  : '1min',
      mm : '%dmin',
      h  : '1Std',
      hh : '%dStd',
      d  : '1T',
      dd : '%dT',
      M  : '1M',
      MM : '%dM',
      y  : '1J',
      yy : '%dJ'
    }
  });

+1 рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдп рдХрд░ рд░рд╣рд╛ рд╣реИ; рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рджреЛрдиреЛрдВ рдЫреЛрдЯреЗ + рд▓рдВрдмреЗ рдлреЙрд░реНрдо рдЙрдкрд▓рдмреНрдз рд╣реЛрдВред
рдореИрдВ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП 'рдореЛ' рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛

рдПрдХ рдкреНрд░рд╛рд░реВрдк рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рди рдпрд╛ рдПрдХ рд╡рд░реНрд╖ рдпрд╛ рдХреБрдЫ рдкреНрд░рд╛рд░реВрдк, рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛:

let time=moment(re.date).fromNow(true);
let format=this.formatDate(time);
formatDate(date){
    let strDate=date.split(" ");
    let format="";
    if(strDate[0]=="un"||strDate[0]=="a"){
      strDate[0]="1";
      format=strDate[0]+strDate[1][0];
      return format
    }
    format=strDate[0]+strDate[1][0];
    return format

  }

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕реА 1d, 3y, 1m

рд╕рд╛рджрд░

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕