Moment: рдЕрд╡рдзрд┐ рд╕реНрд╡рд░реВрдкрдг

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рд╕рд┐рддре░ 2013  ┬╖  118рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moment/moment

рд╣рдордиреЗ рдЗрд╕ рдкрд░ рдкрд╣рд▓реЗ #463 рдФрд░ #879 рдореЗрдВ рдмрд╛рдд рдХреА рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрднреА рднреА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдзреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдмрд╛рдд рдирд╣реАрдВ рдХреА рд╣реИред

рд╣рдореЗрдВ рддрд┐рдерд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд╕рдорд╛рди рдЕрд╡рдзрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЙрддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рддрдирд╛:

moment.duration(x).format("H:mm:ss")

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдЯреЛрдХрди рдХрд╛ рдЕрд░реНрде рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдПрдХ рд╕рдордп-рд╕рдордп рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ:

  • hh рдХрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ "рджрд┐рдиреЛрдВ рдХреЗ рд╣рд┐рд╕рд╛рдм рдХреЗ рдмрд╛рдж рд╢реЗрд╖ рдШрдВрдЯреЗ"
  • h hh . рдХрд╛ рд╕рд┐рдВрдЧрд▓ рдбрд┐рдЬрд┐рдЯ рдлреЙрд░реНрдо рд╣реЛрдЧрд╛
  • HH рдХрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ "рдХреБрд▓ рдкреВрд░реЗ рдШрдВрдЯреЗ"
  • H HH . рдХрд╛ рд╕рд┐рдВрдЧрд▓ рдбрд┐рдЬрд┐рдЯ рдлреЙрд░реНрдо рд╣реЛрдЧрд╛
  • HHH рдХрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ "рджрд╢рдорд▓рд╡ рд╕рд╣рд┐рдд рдХреБрд▓ рдШрдВрдЯреЗ" - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ duration.asHours() рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдиреНрдп рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕реНрд╡рд░реВрдкрдг рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЙрдЪреНрдЪрддрдо рдЗрдХрд╛рдИ "рджрд┐рди" рд╣реЛрдЧреА, рдЬреЛ рдПрдХ рдорд╛рдирдХ рджрд┐рди рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ 24 рдорд╛рдирдХ рдШрдВрдЯреЗ рд╣реЛрдВрдЧреЗред рдХреИрд▓реЗрдВрдбрд░рд┐рдВрдЧ рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд░реНрд╖реЛрдВ рдпрд╛ рдорд╣реАрдиреЛрдВ рдХреЛ рдорд╛рдкрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдиреЛрдЯ, рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ (рдлрд┐рд░ рд╕реЗ) рдЗрд╕ рдкреНрд░рд╢реНрди рдореЗрдВ StackOverflow рдкрд░ рдЖрдпрд╛ рдерд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ duration.format("H:mm:ss") рдЬреИрд╕рд╛ рдХреБрдЫ рдвреВрдВрдв рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдЙрдкрд╛рдп рд╣реИ:

Math.floor(duration.asHours()) + moment.utc(duration.asMilliseconds()).format(":mm:ss")

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИрдХреА рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

New Feature Up-For-Grabs

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

рдХреНрдпрд╛ рдпрд╣ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ

moment.utc(total.asMilliseconds()).format("HH:mm:ss");

рдХреЗ рдмрдЬрд╛рдП

Math.floor(duration.asHours()) + moment.utc(duration.asMilliseconds()).format(":mm:ss")

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

+1

moment.duration(x).format("H:mm:ss") рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рдерд╛ рдЬреИрд╕рд╛ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛, рдпрд╣ рд╕рдордЭрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдореИрдЯ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдиреЗ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдкрд▓реЛрдВ рдореЗрдВ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд╛рд▓рд┐рддреНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реИрдХреА рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ

moment.utc(total.asMilliseconds()).format("HH:mm:ss");

рдХреЗ рдмрдЬрд╛рдП

Math.floor(duration.asHours()) + moment.utc(duration.asMilliseconds()).format(":mm:ss")

Code Bounty

@RobinvdVleuten - рд╡рд░реНрддрдорд╛рди рдлреЙрд░реНрдореЗрдЯрд░ рдореЗрдВ HH рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реНрдг рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдХреЗ рдШрдВрдЯреЗ _portion_ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдПрдХ _рд╡рд┐рд▓рдВрдмрд┐рдд_ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, 24 рдШрдВрдЯреЗ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред 24 рдШрдВрдЯреЗ рдмреАрддрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЗрдЦрд╛ред рдЕрдм рдореИрдВ рдЗрд╕реЗ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдХрд▓рд┐рдд рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╣реИрдХреА рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИред

рдХреНрдпрд╛ рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╢реЗрд╖ рд░рд╣рдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ "рд╕реНрддрд░" рд╣реЛрдЧрд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рдорд╣реАрдиреЛрдВ рдХреЗ рд╣рд┐рд╕рд╛рдм рдХреЗ рдмрд╛рдж рдХреЗ рдШрдВрдЯреЗ" рдХрд╣рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рд╕реАрдорд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рд╕реЗрдХрдВрдб рд╕реНрдкрд┐рдЯрдмреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ "рдПрдВрдХрд░" рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ:

moment.duration(x).format("hh:mm:ss", "M");

рдЬреЛ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдШрдВрдЯреЗ рдорд╣реАрдиреЗ рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдПрдВрдХрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЗрдХрд╛рдИ рдФрд░ рдПрдХ рдЖрдХрд╛рд░ рдКрдкрд░ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рджрд┐рди) рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛ред рдЗрд╕реА рддрд░рд╣, рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдорд┐рдирдЯ рдореЙрдбреНрдпреВрд▓реЛ рдШрдВрдЯреЗ рдФрд░ рд╕реЗрдХрдВрдб рдореЛрдбреБрд▓реЛ рдорд┐рдирдЯ рд╣реИрдВред рдЬрдмрдХрд┐ рдпрджрд┐ рдЖрдкрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ:

moment.duration(x).format("hh:ss");

...рд╕реЗрдХрдВрдб рдШрдВрдЯреЗ рдореЙрдбреНрдпреВрд▓реЛ рд╣реЛрдВрдЧреЗред

рд╢рд╛рдпрдж рдпрд╣ рд╕рдм рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ - рдЗрд╕реЗ рдЗрд╕реНрддреНрд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЗрд╕ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╕рдкреНрддрд╛рд╣ рдХрд╣рд╛рдБ рдЬрд╛рддреЗ рд╣реИрдВ?) рд▓реЗрдХрд┐рди рд╕реЛрдЪрдиреЗ рдореЗрдВ рдордЬрд╛ рдЖрддрд╛ рд╣реИред

рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдиреЛрдЯ рдкрд░, рдЖрдк рдЗрд╕ рд▓реЛрдЕрд░рдХреЗрд╕/рдЕрдкрд░рдХреЗрд╕ рдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдорд╣реАрдиреЗ рдмрдирд╛рдо рдорд┐рдирдЯреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗ?

рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рджрд┐рди рдЕрдзрд┐рдХрддрдо рдЗрдХрд╛рдИ рдЖрдХрд╛рд░ рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдорд╣реАрдиреЗ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЕрд╕рд▓ рдореЗрдВ, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЙрд▓рдЯрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдПрд╕рдкреАрдиреЗрдЯ рд╕рдордп рдЕрд╡рдзрд┐ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдЕрд╡рдзрд┐ рдХреЛ рдХреИрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВред

рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдореИрдВ рдПрдХ рдПрд╕рд╕реАрдУрдЖрд░рдПрдо 2004 рдЖрд░рдЯреАрдИ (рдкреА 77) рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдЯреИрдВрдбрд░ рд╕реЗ рдЖрдпрд╛ рд╣реИ,

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдореИрдВ рдПрдХ рдорд╛рди рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ: P34H
рдФрд░ рдкрд╛рд░реНрд╕рд░реНрд╕ рдХреЛ рдЗрд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ 1 рджрд┐рди рдФрд░ 10 рдШрдВрдЯреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
'рдкреАрдПрдЪрдПрдо' рдХреА рддрд░рд╣
рдФрд░ рдлрд╝реЙрд░реНрдореЗрдЯрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреБрд▓ рдШрдВрдЯреЗ рд╢реЗрд╖ рдорд┐рдирдЯ рдХреЗ рд░реВрдк рдореЗрдВ?
рдореИрдВ рдПрдЪрдПрдЪ рдЬреИрд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рдПрдордПрдо

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╣рд╛рдпрдХ рд╣реИ

рд╕рдордп рдЕрдВрддрд░рд╛рд▓ (рджреВрд╕рд░рд╛, 10,2): рд╕рдордп рдЕрдВрддрд░рд╛рд▓ (рджреВрд╕рд░рд╛, 10, 2) рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд╛ рдорд╛рди
рдбреЗрдЯрд╛ рдореЙрдбрд▓ рддрддреНрд╡ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ 0.01 . рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп рджрд░реНрд╢рд╛рддрд╛ рд╣реИ
рд╕реЗрдХрдВрдб [1]ред SCORM рдбреЙрдЯ-рдиреЛрдЯреЗрд╢рди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ a . рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдХреИрд░реЗрдХреНрдЯрд░рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдХреИрд░реЗрдХреНрдЯрд░рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:
рдкреА [рд╡рд╛рдИрд╡рд╛рдИ] [рдПрдордПрдо] [рдбреАрдбреА] [рдЯреА [рдПрдЪрдПрдЪ] [рдПрдирдПрдо] [рдПрд╕ [рдПрд╕] рдПрд╕]] рдЬрд╣рд╛рдВ:
тАв y: рд╡рд░реНрд╖реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдкреВрд░реНрдгрд╛рдВрдХ, >= 0, рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╣реАрдВ)
тАв рдореА: рдорд╣реАрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдкреВрд░реНрдгрд╛рдВрдХ, >=0, рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╣реАрдВ)
тАв рдШ: рджрд┐рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдкреВрд░реНрдгрд╛рдВрдХ, >=0, рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╣реАрдВ)
тАв h: рдШрдВрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдкреВрд░реНрдгрд╛рдВрдХ, >=0, рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╣реАрдВ)
тАв n: рдорд┐рдирдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдкреВрд░реНрдгрд╛рдВрдХ, >=0, рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╣реАрдВ)
тАв s: рд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рд╕реЗрдХрдВрдб рдХрд╛ рдЕрдВрд╢ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛ рдкреВрд░реНрдгрд╛рдВрдХ, >=0, рдирд╣реАрдВ
рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд)ред рдпрджрд┐ рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ SCORM рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЖрдЧреЗ рд╕реАрдорд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реИ
рдЕрдзрд┐рдХрддрдо 2 рдЕрдВрдХ (рдЬреИрд╕реЗ, 34.45 - рдорд╛рдиреНрдп, 34.45454545 - рдорд╛рдиреНрдп рдирд╣реАрдВ)ред
тАв рд╡рд░реНрдг рд╢рд╛рдмреНрджрд┐рдХ рдЕрднрд┐рдХрд▓реНрдкрдХ P, Y, M, D, T, H, Mand Ssll рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ рдпрджрд┐
рд╕рдВрдЧрдд рдЧреИрд░-рд╢реВрдиреНрдп рдорд╛рди рдореМрдЬреВрдж рд╣реИред
тАв рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╢реВрдиреНрдп-рдЧрджреНрджреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╢реВрдиреНрдп-рдкреИрдбрд┐рдВрдЧ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ
рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдИ рдЬрд╛ рд░рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рдиред рдХреЗ рд▓рд┐рдпреЗ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, PT05H PT5H рдФрд░ PT000005H рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
тАв P1Y3M2DT3H 1 рд╡рд░реНрд╖, 3 рдорд╣реАрдиреЗ, 2 рджрд┐рди рдФрд░ 3 рдШрдВрдЯреЗ рдХреА рдЕрд╡рдзрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ
тАв PT3H5M 3 рдШрдВрдЯреЗ рдФрд░ 5 рдорд┐рдирдЯ рдХреА рдЕрд╡рдзрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреНрд░рд╛рд░реВрдк рдФрд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рд╣реИ
рдПрд╕рд╕реАрдУ рдФрд░ рдПрд▓рдПрдордПрд╕ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ред рдЪреВрдВрдХрд┐ рдкреНрд░рд╛рд░реВрдк рд╕рдордп рдХреА рдЕрд╡рдзрд┐ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд░рд╣рд╛ рд╣реИ,
рддреЛ PT5M рдЬреИрд╕реА рдЕрд╡рдзрд┐ PT300S рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред
рдпрджрд┐ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рддрддреНрд╡, рдЬреЛ рдХрд┐ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ (рд╕реЗрдХрдВрдб, 10,2) рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ, рдореЗрдВ рдПрдХ рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рддреЛ
тАв рдкрджрдирд╛рдордХ Pshal рдЙрдкрд╕реНрдерд┐рдд рд░рд╣реЗрдВрдЧреЗ;
тАв рдЕрдЧрд░ рд╕рд╛рд▓, рдорд╣реАрдиреЗ, рджрд┐рди, рдШрдВрдЯреЗ, рдорд┐рдирдЯ рдпрд╛ рд╕реЗрдХрдВрдб рдХрд╛ рдорд╛рди рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдорд╛рди
рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдг рд╢рд╛рдмреНрджрд┐рдХ рдкрджрдирд╛рдо рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдПрдХ
рдХреИрд░реЗрдХреНрдЯрд░ рд▓рд┐рдЯрд░рд▓ рдбреЗрдЬрд┐рдЧреНрдиреЗрдЯрд░ рдФрд░ рд╡реИрд▓реНрдпреВ рдбреЗрдЬрд┐рдЧреНрдиреЗрдЯрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореМрдЬреВрдж рд░рд╣реЗрдВрдЧреЗ
рдкреА;
тАв рдпрджрд┐ рд╕рднреА рд╕рдордп рдШрдЯрдХ (рдШрдВрдЯреЗ, рдорд┐рдирдЯ .)
рдФрд░ рд╕реЗрдХрдВрдб) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╕рдордп рд╢реВрдиреНрдп рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдШрдЯрдХ (рдЬреИрд╕реЗ, PT0S)ред

рдЕрд╡рдзрд┐ рд╕реНрд╡рд░реВрдкрдг рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛ред рджреЛ рдЕрд▓рдЧ "рдШрдВрдЯреЗ" рдЯреЛрдХрди рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред 32 рдШрдВрдЯреЗ рдХреА рдЕрд╡рдзрд┐ рдорд╛рди рд▓реЗрдВред рдЖрдк рдХрднреА рднреА 1 рджрд┐рди рдирд┐рдХрд╛рд▓реЗ рдмрд┐рдирд╛ рд╕рд┐рд░реНрдл 8 рдШрдВрдЯреЗ рдирд┐рдХрд╛рд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣реЗрдВрдЧреЗред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @icambron рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИред рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЯреЛрдХрди рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ рдФрд░ рдЕрд╡рдзрд┐ рдХреЛ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд░реЗрдВред рдЯреЛрдХрди рдХреЛ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдХреНрд░рдо рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдбреАрдбреА: рдПрдЪрдПрдЪ: рдПрд╕рдПрд╕" рдХрд╛ рдЕрд░реНрде рд╣реИ рдкреВрд░реЗ рджрд┐рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрд╛рдВрдХрди рдХреЗ рдмрд╛рдж рдкреВрд░реНрдг рдШрдВрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рджрд┐рдиреЛрдВ + рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрд╛рдВрдХрди рдХреЗ рдмрд╛рдж рдкреВрд░реНрдг рд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛)ред

рдореИрдВрдиреЗ рдПрдХ рдкрд▓ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЕрд╡рдзрд┐ред рдкреНрд░рд╛рд░реВрдк рдкреНрд▓рдЧрдЗрди:
https://github.com/jsmreese/moment-duration-format

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдЪрд╛рд░реЛрдВ/рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред

@jsmreese рдХреНрдпрд╛ рдЖрдкрдиреЗ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рджрд░реНрдЬ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреА рдкреНрд▓рдЧрдЗрди рдореЛрдореЗрдВрдЯрдЬ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ?

@hotzenklotz рд╣рд╛рдВ рдореИрдВрдиреЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рджрд╛рдЦрд┐рд▓ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВрдиреЗ #1538 рдореЗрдВ @icambron рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рднреА рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рдореЗрд░рд╛ рдкреНрд▓рдЧрдЗрди:

  • рд▓реЛ-рдбреИрд╢ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
  • Moment.js рдХреЛрдб рдХреА рддрд░рд╣ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдФрд░ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ
  • рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

рдореИрдВ рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП Moment.js рдХреЛрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП _love_ рдХрд░реВрдВрдЧрд╛... рд▓реЗрдХрд┐рди рдореИрдВ рдЙрди рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдЙрдирдХрд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рд╣рдо рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ рдХреЛрдб рдХрд╛ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдореЗрдВ рдЬрд┐рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдпреВрдирд┐рдХреЛрдб рд╕реАрдПрд▓рдбреАрдЖрд░ рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдЕрдиреБрд╡рд╛рдж рдХрд╛рд░реНрдп рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рд╕реАрдПрд▓рдбреАрдЖрд░ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ (рдЕрд╡рдзрд┐ рдХреЗ рдмрдЬрд╛рдп) рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ...

рдЕрдВрдЧреНрд░реЗрдЬреА (рдпреВрдПрд╕) рдХреИрд▓реЗрдВрдбрд░ рдбреЗрдЯрд╛

рдЕрднреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЛрдореЗрдВрдЯ рдбреНрдпреВрд░реЗрд╢рди рдлрд╝реЙрд░реНрдореЗрдЯ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд▓реЛ-рдбреИрд╢ рдпрд╛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдкрд░ рдкрд┐рдЫрд▓реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

https://github.com/jsmreese/moment-duration-format

@jsmreese рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдорд╛рд░реА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

+1

+1

+1

+1

+1

+1

+1

+1

рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдПрдХ рдЯреВрдЯреЗ рд╣реБрдП рд░рд┐рдХреЙрд░реНрдб рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрд╣рд╛рдВ рднреА рд╕рдВрднрд╡ рд╣реЛ, рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрджрд╛ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрд╡рдзрд┐ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП LLLL рдХреЗ рд╕рдорд╛рди рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред .

рдХреБрдЫ рд╣рдж рддрдХ рдХрд╖реНрдЯрдкреНрд░рдж, рд╕реАрдПрд▓рдбреАрдЖрд░ рд╕реНрд╡рд░реВрдкрдг рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реНрдпрд╛рдкрдХ рд╕рд╛рдкреЗрдХреНрд╖ рдЕрд╡рдзрд┐ рдФрд░ рдЕрдВрддрд░рд╛рд▓ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ рдЬреЛ рдХрд╣реАрдВ рдФрд░ рдкрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗ рдЕрд╡рдзрд┐ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдиреНрдпреВрдирддрдо рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдФрд░ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ humanize() рдЬреИрд╕реЗ рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдКрдкрд░ рд╡рд░реНрдгрд┐рдд hh / h рд╕рд┐рдВрдЯреИрдХреНрд╕ ISO8601, CLDR, рдФрд░ Apache рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдЯреЛрдХрди рд╕реЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╕реНрдерд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдореИрдВ рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рдкреНрд░рд╛рд░реВрдкрдг рдкреИрдЯрд░реНрди рдореЗрдВ рдореЙрдбреНрдпреВрд▓реЛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЗрдХрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП h:mm:ss рдПрдХ "рд╕рд╛рдорд╛рдиреНрдп" рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди 24 рдШрдВрдЯреЗ (рдЙрджрд╛рд╣рд░рдг 26:30:00) рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ "HH:MM:ss" рдЬреИрд╕реЗ рдкреИрдЯрд░реНрди рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдЧрд╛, рдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рднреА рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдЧ рдХрд╛ рд╕реНрд░реЛрдд рдмрди рд╕рдХрддрд╛ рд╣реИред

"i18n рд╣рд░ рдЬрдЧрд╣" рдХреА рднрд╛рд╡рдирд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, CLDR рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрд╡рдзрд┐ рдкреНрд░рд╛рд░реВрдк рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:

  • рдШрдВрдЯреЗ + рдорд┐рдирдЯ ( h:mm EN-US рдореЗрдВ)
  • рдШрдВрдЯреЗ + рдорд┐рдирдЯ + рд╕реЗрдХрдВрдб ( h:mm:ss EN-US рдореЗрдВ)
  • рдорд┐рдирдЯ + рд╕реЗрдХрдВрдб ( m:ss EN-US рдореЗрдВ)
    рдФрд░ рдЗрди рд╕рдордпрд╛рд╡рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рд░рд╛рдВрдХ ( LLL рджрд┐рдирд╛рдВрдХ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рд╕рдорд╛рди) рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╕рдордЭрджрд╛рд░реА рд╣реЛ рд╕рдХрддреА рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдШрдВрдЯреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрд╡рд░реВрдкрдг рдЕрд╡рдзрд┐ рдПрдХ рдПрдХрд▓ рд╕реНрд╡рд░реВрдкрдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ (рдмрд╣реБрд╡рдЪрди рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рди рдкрд░ рдЖрдкрдХреЛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА), рдФрд░ рдореИрдВ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ _any_ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛ рд░рд╣рд╛ рдерд╛ рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ 24 рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЕрд╡рдзрд┐рдпреЛрдВ рдХрд╛ рдЖрд╕рд╛рди, i18n-рдЕрдиреБрдХреВрд▓ рд╕реНрд╡рд░реВрдкрдгред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк duration.humanize() рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдХреЗ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрдВ, рдореВрд▓ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ #463 рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, duration.format() рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХреЛрдИ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рдлреА рдиреБрдХрд╕рд╛рди рд╣реЛрддреЗ рд╣реИрдВред рдЖрдкрдХреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╢рд░реНрдд рдпрд╣ рд╣реЛрдЧреА рдХрд┐ рдЖрдк duration.humanize() рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВ, рдпрд╛ рдПрдХ рд╕реНрдХреЗрд▓-рдмреИрдХ duration.format() рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рдХреЗрд╡рд▓ рдШрдВрдЯреЗ, рдорд┐рдирдЯ рдФрд░ рд╕реЗрдХрдВрдб рдХреЛ рд╕рдордЭрддрд╛ рд╣реЛред

+1

рдпрджрд┐ рдЖрдкрдХреЛ рдкреИрдбрд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рдХрд╛рд░реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

function padWithZero(input, length) {
    // Cast input to string
    input = "" + input;

    let paddingSize = Math.max(0, length - input.length);
    return new Array(paddingSize > 0 ? paddingSize + 1 : 0).join("0") + input;
}

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

:+1:

: +1: рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХреНрд╖рдг рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдореБрдЭреЗ рдХрднреА рд╡рд┐рдлрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ!

+1 рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХреНрд╖рдг-рдЕрд╡рдзрд┐-рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рдирд╣реАрдВ рд╣реИред рдореИрдВ рджрд┐рдиреЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдорд╣реАрдиреЛрдВ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЗрдмрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ?

+1

+1

+1

+1

:+1:

+1
рдпрд╣ рдЕрднреА рднреА рдХреЛрд░ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ?

+1 +1 +1 +1 +1

+1

+2

@jsmreese рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдкреНрд▓рдЧрдЗрди i18n рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ?

@rumeshwick : рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк i18n рдХреИрд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рдореЗрд░реА рдкреНрд▓рдЧрдЗрди рд╕реЗ рдХреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

+1

рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣реИрдХреА рддрд░реАрдХреЗ рд╕реЗ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ:

  var dur = moment.duration('PT90M');
  moment(dur._data).format('[it\'s] D [days and] h [hour]');

рдпрд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

"рдпрд╣ 1 рджрд┐рди рдФрд░ 1 рдШрдВрдЯрд╛ рд╣реИ"

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк "рдпрд╣ 1 рджрд┐рди рдФрд░ 90 рдорд┐рдирдЯ рд╣реИ" рдЬреИрд╕рд╛ рдХреБрдЫ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдореЗрд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЗрд╕рдореЗрдВ i18n рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдпрд╣ рдкрд▓-рдкрд▓ рд╣рд▓ рд╣реЛ рдЬрд╛рдПред

рдирдорд╕реНрддреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рдПрдХ Ember.JS рд╕рд╣рд╛рдпрдХ рд╣реИ:

https://github.com/ember-build-blocks/ember-hbs-date-helpers

+1

@vanthome рдХреЗ рд╣реИрдХреА рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП +1: +1:

@jsmreese - рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рдкреНрд▓рдЧрдЗрди рдХреЛ рдкрд▓ рдХреЛрд░ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдирдП ES6 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреБрди: рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдХреБрдЫ рдирд┐рд░рд░реНрдердХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд▓ рдХреЗ рд╕рдордХрдХреНрд╖ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

@ mj1856 рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдИрдореЗрд▓ рдкрд░ рдкрд┐рдВрдЧ рдХрд░реВрдВрдЧрд╛ред

рд╡рд╛рд╣! рдЬрд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛, @jsmreese рдФрд░ @ mj1856 !!! :рддрд╛рд▓реА рддрд╛рд▓реА рддрд╛рд▓реА:

рдореИрдВ рдпрд╣рд╛рдВ рд╕рд┐рд░реНрдл @jsmreese рдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдкрд▓ рдЬреЗрдПрд╕ рдореЗрдВ рдорд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдиреЗ рдЖрдпрд╛ рдерд╛ред

+1

+1

рдЪреВрдБрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @jsmreese рдХрд╛ рд╕рдордп рдХрдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ Up For Grabs рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреАрдЖрд░ рдХреЛ @jsmreese рдХреЗ рдХреНрд╖рдг-рдЕрд╡рдзрд┐-рдкреНрд░рд╛рд░реВрдк рдкреНрд▓рдЧрдЗрди рдХреА рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди ES2015 рд╢реИрд▓реА рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм рдХреНрд╖рдг.js рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореМрдЬреВрджрд╛ рдХреНрд╖рдг рдХрд╛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред js рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛрдб рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

+1

рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬрд┐рд╕рдореЗрдВ @jsmreese рдХреЗ рдХреНрд╖рдг-рдЕрд╡рдзрд┐-рдкреНрд░рд╛рд░реВрдк рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ, рд╡рд╣ рд╣реИ рд╕реНрд╡рд░реВрдкрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдПрдХ рдЕрд╡рдзрд┐ рд╡рд╕реНрддреБ рдХреЛ рд╡рд╛рдкрд╕ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

рдЕрд░реЗ @ рдПрдордЬреЗ 1856 , рдореБрдЭреЗ рдкрд▓ рдореЗрдВ рдкреНрд░рд╛рд░реВрдк рдкреНрд▓рдЧрдЗрди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред рдпреЛрдЧрджрд╛рди Up-For-Grabs рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдореБрдЭреЗ рдмрд╕ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ develop рд╢рд╛рдЦрд╛ рдореЗрдВ рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХрд┐рд╕реА рдФрд░ рдиреЗ рдЗрд╕рдХрд╛ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рд╣реИ?

@joshrowley рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдирд╛рдпрдХ рд╣реЛрдВрдЧреЗред рдЖрдЧреЗ рдмрдврд╝реЛ рдФрд░ рдЗрд╕реЗ рд▓реЗ рд▓реЛ, рдФрд░ рдЬрдм рдЖрдк рддреИрдпрд╛рд░ рд╣реЛрдВ рддреЛ рдПрдХ рдкреБрд▓ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред рдпрд╣ рдЧреНрд░реИрдм рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдкреЗрдЪреАрджрд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ - рд╣рдо рдЗрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦреЗрдВрдЧреЗред рд╣рдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрдлреЛрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ - рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдбрд╝рд╛ рд╣реИ рдЬрд┐рддрдирд╛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдЗрд╕рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ (рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп) рднреА рд╕рдВрднрд╛рд▓ рд▓реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдкреВрд░реЗ рдкрд▓ рджреЗрд╡ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ рдкрд░ рдкреАрдЖрд░: #3308

рдирдорд╕реНрддреЗ рджреЛрд╕реНрддреЛрдВ, рдореИрдВрдиреЗ #3615 рдкрд░ рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓рд╛ рдФрд░ рдЙрд╕ рдкрд░ рдХреБрдЫ рдирд┐рдЧрд╛рд╣реЗрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛!

рд╢рд╛рдпрдж рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ - рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛:
рдкрд▓ред рдЕрд╡рдзрд┐ (3500000)ред рдкреНрд░рд╛рд░реВрдк ("рдПрдЪрдПрдЪ: рдорд┐рдореА", {рдмрд▓ рд▓рдореНрдмрд╛рдИ: рд╕рдЪ})
рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ: 58, рдмрдЬрд╛рдп 00:58

http://stackoverflow.com/questions/41443233/use-moment-js-to-display-duration-in-format-00xx-when-duration-is-less-than-a

ms = moment(moment().format(),"YYYY-MM-DD HH:mm:ss").diff(moment(time,"YYYY-MM-DD HH:mm:ss"));
var duration = moment.duration(ms);
moment(duration._data).format("HH:mm");

рдЕрд╡рдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╣реИрдХ ....

var timeInSeconds = 5000;
var formattedDur = moment("1900-01-01 00:00:00").add(timeInSeconds, 'seconds').format("HH:mm:ss");

+1

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ @fabiogalera рдФрд░ @befreestudios рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдХ <24 рдШрдВрдЯреЗ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рди рддреЛ 24 рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ рдкрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЖрдЬрдорд╛рдпрд╛ рдФрд░ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЧрд▓рддрдлрд╣рдореА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред
-
рдореБрдЭреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ @ mj1856 рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рдореВрд▓ рд╣реИрдХ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЕрдЬреАрдм рдЧреЛрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ/рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рднреА рдорд┐рд▓реЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2.3 рдпрд╛ 4.1 рдШрдВрдЯреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╡реЗ рджрд╢рдорд▓рд╡ рдорд╛рди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрдИ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2.3 рдареАрдХ 2:18:00 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ 2:17:59 рдорд┐рд▓реЗрдЧрд╛ред рдФрд░ 4.1 рдареАрдХ 4:06:00 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ 4:05:59 рдорд┐рд▓реЗрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ duration.asXXX() рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рд╕рдЯреАрдХ/рдЧреЛрд▓рд╛рдХрд╛рд░ рдореБрджреНрджреЗ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдХрд┐рд╕реА рдФрд░ рдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ?

Date.format (https://gist.github.com/ptquang86/2893903) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд╡рдзрд┐.рдлреЙрд░реНрдореЗрдЯ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдордЬрд╝рд╛ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

moment.duration.fn.format = moment.duration.fn.format || function (mask): string {
            // Some common format strings
            let formatMasks = {
                "default":      "DD MM YYYY HH:mm:ss",
                shortDate:      "M/D/YY",
                mediumDate:     "MM DD, YYYY",
                longDate:       "MM DD, YYYY",
                fullDate:       "DD, MM, YYYY",
                shortTime:      "H:mm TT",
                mediumTime:     "H:mm:ss TT",
                longTime:       "H:mm:ss TT Z",
                isoDate:        "YYYY-MM-DD",
                isoTime:        "hh:mm:ss",
                isoDateTime:    "YYYY-MM-DD'T'hh:mm:ss",
            };

            let format = function () {
                let token = /D{1,2}|M{1,2}|YY(?:YY)?|([HhmsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g;

                function pad(val, len?) {
                    val = String(val);
                    len = len || 2;
                    while (val.length < len) val = "0" + val;
                    return val;
                }

                // Regexes and supporting functions are cached through closure
                return function (date, mask) {
                    mask = String(formatMasks[mask] || mask || formatMasks["default"]);

                    let D = date.days(),
                        m = date.months(),
                        y = date.years(),
                        H = date.hours(),
                        M = date.minutes(),
                        s = date.seconds(),
                        L = date.milliseconds(),
                        flags = {
                            D:    D,
                            DD:   pad(D),
                            M:    m + 1,
                            MM:   pad(m + 1),
                            YY:   String(y).slice(2),
                            YYYY: y,
                            H:    H % 12 || 12,
                            HH:   pad(H % 12 || 12),
                            h:    H,
                            hh:   pad(H),
                            m:    M,
                            mm:   pad(M),
                            s:    s,
                            ss:   pad(s),
                            l:    pad(L, 3),
                            L:    pad(L > 99 ? Math.round(L / 10) : L),
                            t:    H < 12 ? "a"  : "p",
                            tt:   H < 12 ? "am" : "pm",
                            T:    H < 12 ? "A"  : "P",
                            TT:   H < 12 ? "AM" : "PM",
                        };

                    return mask.replace(token, function ($0) {
                        return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
                    });
                };
            }();

            return format(this, mask);
        };

рдЙрдкрдпреЛрдЧ: рдкрд▓ред рдЕрд╡рдзрд┐ (10000)ред рдкреНрд░рд╛рд░реВрдк ("рдПрдЪрдПрдЪ: рдорд┐рдореА: рдПрд╕рдПрд╕: рдПрд▓")

+1

рдпрд╣рд╛рдВ рдХреЛрдИ рдЦрдмрд░ рд╣реИ, рдХреНрдпрд╛ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдкрд▓ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛? рдЖрдо рд╕рд╣рдорддрд┐ рдХреНрдпрд╛ рд╣реИ?

+1

рдлрд┐рд░ рд╕реЗ рдЙрдЫрд╛рд▓ рдпрд╣ рдЪреМрдереА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рддрд░рд╣ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдкрд▓.рдЬреЗрдПрд╕ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

+1

рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЗрд╕ рдкрд░ рдирдЬрд░ рд░рдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рдПрдЧреАред рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ?

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореЗрд░реЗ рдРрдк рдореЗрдВ рд╣реИ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:
https://momentjs.com/docs/#/durations/

@ luchilo17 рдХреНрдпрд╛ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЦреИрд░ рдореИрдВрдиреЗ рдЕрднреА 5 рдорд┐рдирдЯ рдкрд╣рд▓реЗ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдареАрдХ рд╣реИ, рд╣рдо рдпрд╣рд╛рдБ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЕрд╡рдзрд┐ _do_ рдХрд╛рд░реНрдпред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрд╡рдзрд┐рдпреЛрдВ рдХреЗ рд╕реНрд╡рд░реВрдкрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

рдореЗрд░рд╛ рдмреБрд░рд╛, рдзрд╛рдЧрд╛ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдиреАрдЪреЗ рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдЦреЛ рдЧрдпрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдм рдЬрдм рдореИрдВ рдХрд░реАрдм рджреЗрдЦрддрд╛ рд╣реВрдВ рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдкрд▓ рдЕрд╡рдзрд┐ рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ:
https://momentjs.com/docs/#/plugins/duration -format/

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

рдФрд░ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдкреНрд▓рдЧрдЗрди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ Moment.js рдореЗрдВ рд╡рд┐рд▓реАрди рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдЕрд╡рдзрд┐рдпрд╛рдБ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред

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

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдкреВрд░реА рдЕрд╡рдзрд┐ рдореЙрдбреНрдпреВрд▓ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рдпрд╛ рд╡реЛред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЕрд╡рдзрд┐ рдореЙрдбреНрдпреВрд▓ рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрд░реНрде рд╣реИред рдЗрд╕рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдп рд╕рд┐рд░реНрдл рд╕рд╛рдзрд╛рд░рдг рдЧрдгрд┐рдд рд╣реИрдВ рдЬреЛ рдмрд┐рдирд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдареАрдХ рд╕реЗ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдкреНрд▓рдЧрдЗрди рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред

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

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИрдВред
рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВред
рдЗрд╕ рддрд░рд╣, рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ Google рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдФрд░ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдЕрдиреБрднрд╛рдЧ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛ред

4 рд╕рд╛рд▓ рдФрд░ рдЕрднреА рднреА рдорд╛рд▓рд┐рдХреЛрдВ рдХреА рдУрд░ рд╕реЗ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ... рдпрд╣ рджреБрдЦрдж рд╣реИ :(

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ,

рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрд╖рдг рдПрдХ рд╕реНрд╡рдпрдВрд╕реЗрд╡реА рд╕рдореБрджрд╛рдп рд╣реИ! рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдпреЗ рдЧреБрдг рд╣реЛрдВ:
1) рд╣рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
2) рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрд▓реНрдХ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛
3) рдкрд╣рд┐рдпрд╛ рдХрд╛ рдкреБрди: рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдпрд╛рдиреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ!)
4) рдореМрдЬреВрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд╡рд┐рд▓реАрди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
https://github.com/moment/moment/pull/3615

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХреНрд╕ рдЕрд╡рдзрд┐ рд╕реНрд╡рд░реВрдкрдг рдкреНрд▓рдЧрдЗрди (рдпрд╛ рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ !)

@marwahaha

рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрд▓реНрдХ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛
рдкрд╣рд┐рдпрд╛ рдХрд╛ рдкреБрди: рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдпрд╛рдиреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ!)

рдареАрдХ рд╣реИ, рдЪреВрдВрдХрд┐ рдкрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЕрдВрджрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд╡рдзрд┐-рдкреНрд░рд╛рд░реВрдк рдкреНрд▓рдЧрдЗрди рдФрд░ рдЕрд╡рдзрд┐ рд╣реИ, рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдкрд▓ рд╕реЗ рдЕрд╡рдзрд┐ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реИред рдЬреЗрдПрд╕ рдЕрд▓рдЧ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдФрд░ рдлрд┐рд░ рдЙрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЕрдВрджрд░ рд╕рднреА "рднрд╛рд░реА" рд╕рд╛рдорд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ 2 рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ:
1) рдкрд▓ рдХрдо рдХрд░реЗрдВред рдЬреЗрдПрд╕ рдЖрдХрд╛рд░
2) рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрдЬрд╛рдп рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдЕрд╡рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдПрдХ рдмрдбрд╝реА рдЪреБрдиреМрддреА рдпрд╣ рд╣реИ рдХрд┐ рдЙрд╕ рдкрд▓.js рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд▓реЛрдХреЗрд╢рдВрд╕ рдХреА рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрд╡рдзрд┐ рд╕реНрд╡рд░реВрдкрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдиреЗ рд╕реЗ рдирдлрд░рдд рд╣реЛрдЧреА рдХрд┐ рд╡реЗ рд╕реНрдерд╛рди рд╕реАрдорд┐рдд рдЕрд╡рдзрд┐ рдХреЗ рд╕рдорд░реНрдерди рдХреЛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИ, рдпрд╛ рдореЛрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдЕрд╡рдзрд┐ рд╕реНрд╡рд░реВрдкрдг рд░рдЦрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдордзреНрдп-рдореИрджрд╛рди рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрд▓ рдХрд╛ "рдХреЛрд░" рд╕реНрдерд┐рд░ рд╣реИ, рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕рд┐рдВрдЧрд▓-рд▓реЛрдХреЗрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ .

рдЕрд╡рдзрд┐ рд╕реНрд╡рд░реВрдкрдг рдкреНрд▓рдЧрдЗрди рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЕрдВрджрд░ рд╕рдВрджрд░реНрднрд┐рдд рд╣реИред рдЗрддрдирд╛ рдХрд╛рдлреА рд╣реИред

@OogieBoogieInJSON рдареАрдХ рд╣реИ, рдбреЙрдХреНрд╕ рдЙрддрдиреЗ рдорджрджрдЧрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рдореБрдЭреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдбреЙрдХреНрд╕ рдореЗрдВ рдкреНрд▓рдЧрдЗрдиреНрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдереА, рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдЬреЛрдЦрд┐рдо рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реЗ рдбреЙрдХреНрд╕ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдХреЛрдИ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@ luchilo17 рдореИрдВ рдХреБрдЫ рднреА рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдбреЙрдХреНрд╕ рдкрдврд╝рддрд╛ рд╣реВрдВред рд╢рд╛рдпрдж, рдмрд╕ рдореИрдВ рд╣реА рд╣реВрдБред

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

@ luchilo17 рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдк рдкреНрд░рдмрдВрдзрди рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЪреАрдпрд░реНрд╕!

рдХреНрд╖рдг рдЕрд╡рдзрд┐ рд╕реНрд╡рд░реВрдкрдг рдХреА рдЧрд╛рдерд╛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХреНрд╖рдг-рдЕрд╡рдзрд┐-рдкреНрд░рд╛рд░реВрдк рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 2.0.0 рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓рдЧрднрдЧ рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ / рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд┐рдЫрд▓реЗ рдЪрд╛рд░ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрдВрдЧрд▓реА рдореЗрдВ рд╣реИ - рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдФрд░ рдмрд╣реБрд╡рдЪрди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╕реНрд╡рд░реВрдкрдг рд╡рд┐рдХрд▓реНрдк рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдЗрд╕реЗ рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ: https://github.com/jsmreese/moment-duration-format/releases

рдЕрд╕рд▓реА рдПрдорд╡реАрдкреА -> @jsmreese

рд╣рд╛ред рджрдпрд╛рд▓реБ рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @OogieBoogieInJSONред

рдореИрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореЗрд░рд╛ рдкреНрд▓рдЧрдЗрди рд╢реАрд░реНрд╖ рдкрд░ рд╣реИ - рдФрд░ рдмрд┐рдирд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ - рдкрд▓ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдФрд░ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЗ рднрд╛рд░реА рдкреНрд░рдпрд╛рд╕реЛрдВ, рдХрдИ, рдХрдИ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдирд╛ред рдЪрд╛рд░ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рдмрдирд╛рдпрд╛ рдерд╛ рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рд╣реИ (рд╡рд╛рд╣, рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдирд╛ рд▓рдВрдмрд╛ рд░рд╣рд╛ рд╣реИ!) рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░рдВрддрд░ рдЪрд░рд╡рд╛рд╣реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреАрд▓рд╛ рд╣реИ!

рдЖрдЖрдВрдж рд╕рдВрд╕реНрдХрд░рдг 2.1.0 рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛ рдЪреБрдХреА рд╣реИред.
https://github.com/jsmreese/moment-duration-format/releases

рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрд╕реНрдХрд░рдг 2.0 рд╕реЗ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рдФрд░ moment.duration.format рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрдИ рдЕрд╡рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдордиреНрд╡рд┐рдд рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж moment.duration.fn.format рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рдХреА рдирд╣реАрдВред

рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдЕрд╡рдзрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рд╕реНрд╡рд░реВрдкрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ, рдФрд░ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрд╡рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реБрд╕рдВрдЧрдд рддрд░реАрдХреЗ рд╕реЗ рдПрдХ рд╕рд╛рде рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

moment.duration.format([
    moment.duration(1, "second"),
    moment.duration(1, "minute"),
    moment.duration(1, "hour")
], "d [days] hh:mm:ss");
// ["0:00:01", "0:01:00", "1:00:00"]

moment.duration.format([
    moment.duration(1, "minute"),
    moment.duration(1, "day")
], "w [weeks], d [days], h [hours], m [minutes], s [seconds]", { trim: "all" });
// ["0 days, 1 minute", "1 day, 0 minutes"]

@jsmreese 2.0 рдиреЗ рдкрд╣рд▓реЗ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ 1.3.0 рдкрд░ рд▓реЙрдХ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдлрд┐рд░ рднреА рдлреАрдЪрд░/рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЬреАрд╡рд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@prusswan рдХреГрдкрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг 2.1.0 рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдВред рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЕрднреА рднреА рд╡реЗ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рджреЗрдЦрддреЗ рд╣реИрдВ!

рдореИрдВрдиреЗ рдХреНрд╖рдг-рдЕрд╡рдзрд┐-рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 2.2.0 рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдм рдПрдХ рдлрд╝реЙрд▓рдмреИрдХ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рд░реВрдк рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ toLocaleString рдХрдИ рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдирд╣реАрдВ рд╣реИред

https://github.com/jsmreese/moment-duration-format/releases

рдореИрдВрдиреЗ 2.2 рд╕реЗ 7 рдХреЗ рдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд░рд╕реНрдЯреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдИрдУрдПрд╕ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ 4.3 рд╕реЗ 11 рддрдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИред рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, рдЖрдИрдИ 8-11 рдкрд░ рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдПрдЬ рдмреНрд░рд╛рдЙрдЬрд╝рд░ред

@prusswan рдФрд░ рдЕрдиреНрдп рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 1.3.0 рдкрд░ рд▓реЙрдХ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛, рдЖрдк рд╢рд╛рдпрдж рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 2.2.0 рдЕрдВрдд рдореЗрдВ рдбреНрд░реЙрдк-рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ рдЬреЛ рд╕рдВрд╕реНрдХрд░рдг 2.0.0 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рдЙрди рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЗ рдЦрд┐рд▓рд╛рдл рдореБрджреНрджреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд┐рдпрд╛ рд╣реИ!

рдкрд▓-рдЕрд╡рдзрд┐-рдкреНрд░рд╛рд░реВрдк рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдВрд╕реНрдХрд░рдг 3 рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╕реБрдзрд╛рд░ рд╣реИрдВред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдореБрджреНрджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЬреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдпрд╛ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ!

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 4 рдорд╣реАрдиреЗ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ... рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЗ рд▓рд┐рдП 4 рд╕рд╛рд▓ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВред

  • рдлрд╝реЙрд▓рдмреИрдХ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рд░реВрдкрдг рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЙрд╕ рдХреНрд╖рдг рд▓реЛрдХреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд╡рдзрд┐ рдЗрдХрд╛рдИ рд▓реЗрдмрд▓ рдХреЛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИред рдпрд╣ рд╕рднреА рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд░рдЦреЗрдЧрд╛ред

  • рдкрд▓-рдЕрд╡рдзрд┐-рдкреНрд░рд╛рд░реВрдк рдФрд░ рдЗрд╕рдХреЗ рдлрд╝реЙрд▓рдмреИрдХ рдирдВрдмрд░ рд╕реНрд╡рд░реВрдкрдг рдлрд╝рдВрдХреНрд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрдХреЛрдВ рдФрд░ рдЧреБрдЯ рдЕрдВрдХреЛрдВ рдХреЗ рд▓рд┐рдП Number#toLocaleString рдХреЗ рд╕рдорд╛рди API рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдлрд╝реЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ toLocaleString API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреЛ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ precision рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ toLocaleString API рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ useSignificantDigits рд╡рд┐рдХрд▓реНрдкред

  • рдлрд╝реЙрд▓рдмреИрдХ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рд░реВрдкрдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде toLocaleString рд╕реБрд╡рд┐рдзрд╛ рдкрд░реАрдХреНрд╖рдг рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдкрд░реАрдХреНрд╖рдг рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рд░реВрдкрдг рдЕрд╡рдзрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд╛рд╣рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

  • рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдЬреЛрдбрд╝реЗрдВ, NuGet рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЬреЛ рднреА рдЕрдиреНрдп рдкреИрдХреЗрдЬрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдЗрди рджрд┐рдиреЛрдВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИрдВ, рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВред (рдЗрд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 3 рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред)

  • рдкреНрд▓рдЧрдЗрди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЖрдзреБрдирд┐рдХ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ Moment.js рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред (рдЗрд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 3 рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред)

@jsmreese рдЬрдмрд░рджрд╕реНрдд рдХрд╛рдо, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рднреАрддрд░ рджреЛ рдмрд╛рд░ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЯрдХреНрдХрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрдмрд╛рд╡ рдорд╣рд╕реВрд╕ рди рдХрд░реЗрдВред рдпрджрд┐ рдпрд╣ рдмрд┐рдирд╛ рдЕрдкрдбреЗрдЯ рдХреЗ 4 рд╕рд╛рд▓ рдмрд╛рдж рднреА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореМрдЬреВрджрд╛ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдВрдХрд▓реНрдк рд╣реИ (рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреНрд╖рдг рдХрд╛ рд╣реА рд╣рд┐рд╕реНрд╕рд╛ рдмрди рдЬрд╛рдПред

@jsmreese рдХрдорд╛рд▓ рд╣реИред рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рд╕рд╣реА рд╕рдордп рдкрд░! рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝реА рдмрд╛рдд рд╣реИ рдФрд░ рдЖрдк рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

https://stackoverflow.com/questions/34868498/how-to-get-total-hours-hhmm-format-using-moment-js/58950439#58950439

рджреЗрдЦреЗрдВ https://momentjs.com/docs/#/ -project-status/

рдпрд╣рд╛рдВ рд╕рднреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

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

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

paulyoung picture paulyoung  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vbullinger picture vbullinger  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dbshwang picture dbshwang  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

M-Zuber picture M-Zuber  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Delgan picture Delgan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ