рдорд╣рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдПрдХ рдореБрджреНрджрд╛ рдЬреЛ рдореИрдВрдиреЗ рдЪрд▓рд╛рдпрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╕реЗ() рдЕрд╡рдзрд┐рдпреЛрдВ рдХреЛ рдЧреЛрд▓ рдХрд░реЗрдЧрд╛> = 45 рдорд┐рдирдЯ рд╕реЗ рдПрдХ рдШрдВрдЯреЗ рддрдХред рдЕрдиреНрдп рдЗрдХрд╛рдЗрдпрд╛рдБ (рд╕реЗрдХрдВрдб, рджрд┐рди рдЖрджрд┐) рднреА рдЧреЛрд▓ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╣рдо рдЗрд╕рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд╛рд░реНрдп рдЧреЛрд▓рд╛рдИ рдХрд░рддрд╛ рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЧреЛрд▓рд╛рдИ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдзрдиреНрдпрд╡рд╛рдж!
function relativeTime(milliseconds, withoutSuffix, lang) {
var seconds = round(Math.abs(milliseconds) / 1000),
minutes = round(seconds / 60),
hours = round(minutes / 60),
days = round(hours / 24),
years = round(days / 365),
args = seconds < 45 && ['s', seconds] ||
minutes === 1 && ['m'] ||
minutes < 45 && ['mm', minutes] ||
hours === 1 && ['h'] ||
hours < 22 && ['hh', hours] ||
days === 1 && ['d'] ||
days <= 25 && ['dd', days] ||
days <= 45 && ['M'] ||
days < 345 && ['MM', round(days / 30)] ||
years === 1 && ['y'] || ['yy', years];
args[2] = withoutSuffix;
args[3] = milliseconds > 0;
args[4] = lang;
return substituteTimeAgo.apply({}, args);
}
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
moment().subtract(45, 'minutes').from(moment())
рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рд╕рдордп рд╕реАрдорд╛ рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛
рдпрджрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдкреВрд░реНрдг рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреА рд╕реАрдорд╛ рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
// Set thresholds to be at their "max" value
moment.relativeTimeThreshold('s', 59);
moment.relativeTimeThreshold('m', 59);
moment.relativeTimeThreshold('h', 23);
moment.relativeTimeThreshold('d', 28);
moment.relativeTimeThreshold('M', 12);
рдмрд╣реБрдд рдмрд╣реБрдд рд╢реБрдХреНрд░рд┐рдпрд╛ред рдХреНрдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП 75 рдорд┐рдирдЯ рдХреА рдЕрд╡рдзрд┐ рдХреЛ 'рдПрдХ рдШрдВрдЯреЗ' рдХреЗ рдмрдЬрд╛рдп 'рдПрдХ рдШрдВрдЯреЗ рдФрд░ 15 рдорд┐рдирдЯ' рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? 90 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд╡рд╣реА рдкреНрд░рд╢реНрди -> '2 рдШрдВрдЯреЗ'ред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдореИрдВ рджреЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдиреНрдирд┐рд╣рд┐рдд рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдЙрдЯрдкреБрдЯ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг:
рдХреНрдпрд╛ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд▓ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдЧрд╛ред рдЬреЗрдПрд╕, рдпрд╛ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рдХреНрд╖реНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдЪрд▓рди рдХрд░рддрд╛ рд╣реИ?
рдпрд╣ рддрдерд╛рдХрдерд┐рдд "рдЕрд╡рдзрд┐ рдкреНрд░рд╛рд░реВрдк" рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рд╡рд┐рд╖рдп рд╣реИред tl; dr рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдХреЛрд░ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдпрд╛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдЖрдк рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/moment/moment/issues/1048 рдпрд╛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: https://github.com/jsmreese/moment-duration-formatред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рд╕рдордп рд╕реАрдорд╛ рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛
рдпрджрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдкреВрд░реНрдг рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреА рд╕реАрдорд╛ рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: