moment().fromNow();
рд╕рд╛рде рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕
рдЙрджрд╛рд╣рд░рдг: 1 hour
, 1 day
, 1 week
рд╡рд┐рдкрд░реАрддред 1h
, 1d
, 1w
ред
рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдРрд╕реА рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХ рдЕрдХреНрд╖рд░ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкрд▓ рдореЗрдВ рдЕрднреА рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред
рдЖрдк 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
рд╕рд╛рджрд░
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдк рдЗрд╕реЗ рд▓реЛрдХреЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: