Moment: 지속 시간 서식

에 만든 2013년 09월 05음  Â·  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") 읎(가) 작동하지 않는닀는 것을 읎핎하Ʞ 전에 정확히 예상했던 것입니닀. Matt가 제안한 í•Žê²° 방법은 잘 작동했지만 momentjs의 닀륞 것듀의 우아핚곌 비교하멎 확싀히 핎킹된 것 같습니닀.

하는게 낫지않나요

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

대신에

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

Code Bounty

@RobinvdVleuten - 현재 포맷터에서 HH 륌 사용할 때의 묞제는 전첎 날짜 및 시간의 _부분_시륌 나타냅니닀. _elapsed_ 시간을 처늬할 때 24시간 읎상읎 있을 수 있습니닀. 24시간을 겜곌하멎 0윌로 재섀정되는 것을 볌 수 있습니닀.

나는 귞것을 정말로 알아찚렞닀. 읎제 계산된 밀늬쎈륌 사용하여 형식을 지정하고 있지만 여전히 핎킹 í•Žê²° 방법입니닀.

한 가지 "수쀀"의 나뚞지가 가능하닀고 생각하십니까? 예륌 듀얎 "수개월을 계산한 후 몇 시간"읎띌고 말할 방법읎 없습니까? 나는 귞것읎 완벜하게 합늬적읞 제한읎띌고 생각하지만, 잠시만 뱉얎낎자멎 닀음곌 같읎 "앵컀" 읞수륌 제공하는 것을 상상할 수 있습니닀.

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

읎는 시간읎 월 닚위로 되얎알 핚을 알렀쀍니닀. 앵컀는 선택 사항읎며 Ʞ볞적윌로 가장 큰 닚위에 한 크Ʞ륌 더한 값(읎 겜우 음)읎 섀정됩니닀. 마찬가지로 묞자엎 자첎륌 사용하여 분읎 몚듈로 시간 및 쎈 몚듈로 분읞지 결정할 수 있습니닀. 반멎에 닀음을 수행한 겜우:

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

...쎈는 몚듈로 시간입니닀.

귞것은 아마도 훌륭한 아읎디얎가 아닐 것입니닀. 정늬되지 않았고(읎 계잵 구조에서 몇 죌가 지나알 합니까?) 아마도 불필요할 것입니닀(사람듀은 귞런 구멍을 원하지 않을 것입니닀). 하지만 생각핎볎멎 재믞있닀.

좀 더 진지하게 말하자멎, 읎 소묞자/대묞자 표Ʞ법윌로 월곌 분을 얎떻게 처늬하시겠습니까?

나는 음읎 최대 닚위 크Ʞ가 될 것읎띌고 상상하고 있었Ʞ 때묞에 월은 귞늌에 포핚되지 않았습니닀. Ʞ볞적윌로 읎것은 asp.net 시간 범위에서 였는 Ʞ간을 구묞 분석하는 방법의 반대입니닀.

말읎된닀.

나는 SCORM 2004 RTE (p77) 묞서륌 읜고 있었고 시간 간격 표현읎 닀음곌 같닀는 것을 발견했습니닀. 읎것은 표쀀에서 나옚 것읎띌고 생각합니닀.

읎론적윌로 닀음곌 같은 값을 전달할 수 있습니닀. P34H
파서는 1음 및 10시간윌로 핎석핎알 합니닀.

읎것을 엌두에 두고 출력을 포맷할 수 있Ʞ륌 바랍니닀.
'PHM'처럌
포맷터는 읎륌 쎝 낚은 시간(분)윌로 핎석합니까?
HH:MM곌 같은 출력 형식을 지정하고 싶습니닀.

읎 정볎가 도움읎 되Ʞ륌 바랍니닀

timeinterval(second, 10,2): timeinterval(second, 10, 2)은 닀음 값을 나타냅니닀.
데읎터 몚덞 요소 timeinterval은 0.01의 정밀도로 겜곌 시간을 나타냅니닀.
쎈[1]. SCORM 점 표Ʞ법 바읞딩은 특정 형식을 정의합니닀.
시간 간격을 나타낮는 묞자엎.
묞자엎의 형식은 닀음곌 같습니닀.
P[yY][mM][dD][T[hH][nM][s[.s]S]] 여Ʞ서:
• y: 년 수(정수, >= 0, 제한 없음)
• m: 개월 수(정수, >=0, 제한 없음)
• d: 음 수(정수, >=0, 제한 없음)
• h: 시간 수(정수, >=0, 제한 없음)
• n: 분 수(정수, >=0, 제한 없음)
• s: 쎈 수 또는 쎈의 분수(싀수 또는 정수, >=0, 아님
제한된). 쎈의 분수가 사용되는 겜우 SCORM은 묞자엎을 닀음윌로 추가로 제한합니닀.
최대 2자늬(예: 34.45 – 유횚, 34.45454545 – 유횚하지 않음).
• 묞자 늬터럎 지정자 P, Y, M, D, T, H, Mand S는 닀음곌 같은 겜우 나타납니닀.
핎당하는 0읎 아닌 값읎 있습니닀.
• 값의 제로 팚딩읎 지원되얎알 합니닀. 제로 팚딩은 변겜되지 않습니닀.
묞자 집합윌로 표시되는 숫자의 정수 값입니닀. 을위한
예륌 듀얎, PT05H는 PT5H 및 PT000005H와 동음합니닀.
예시:
• P1Y3M2DT3H는 1년 3개월 2음 3시간의 Ʞ간을 나타냅니닀.
• PT3H5M은 3시간 5분의 시간을 나타냅니닀.

구현자는 형식곌 바읞딩읎
SCO와 LMS 간의 데읎터. 형식은 Ʞ간을 나타낎므로,
PT5M곌 같은 지속 시간은 PT300S와 동음합니닀.
timeinterval(second,10,2) 유형의 데읎터 몚덞 요소에 값읎 포핚된 겜우
• 지정자 P가 있얎알 합니닀.
• 년, 월, 음, 시, 분 또는 쎈의 값읎 0읎멎 값
핎당 묞자 늬터럎 지정은 생략될 수 있지만 적얎도 하나는
묞자 늬터럎 지정자와 값읎 지정자에 추가로 있얎알 합니닀.
플;
• 몚든 시간 구성 요소(시, 분
및 쎈)는 사용되지 않습니닀. 0 값은 얞제든지 사용할 수 있습니닀.
구성 요소(예: PT0S).

êž°ê°„ 형식은 훌륭한 추가 Ʞ능입니닀. 두 개의 고유한 "시간" 토큰읎 필요하지 않습니닀. Ʞ간을 32시간윌로 가정합니닀. 1음도 빌지 않고 8시간만 뜑고 싶지는 않을 것입니닀.

@icambron 읎 좋은 제안을 했닀고 생각합니닀. 형식 묞자엎을 토큰윌로 구묞 분석하고 가장 큰 닚위로 Ʞ간을 표현합니닀. 토큰을 한 번에 하나씩 순서대로 구묞 분석합니닀(예: "DD:hh:ss"는 완료 음 수, 음 계산 후 완료 시간 수, 음 + 시간 계산 후 완료 쎈 수륌 의믞핚).

나는 moment.duration.format 플러귞읞을 게시했습니닀.
https://github.com/jsmreese/moment-duration-format

읎 슀레드에서 대부분의 아읎디얎/사용 사례륌 닀룬닀고 생각합니닀.

@jsmreese momentjs 의 핵심 부분윌로 플러귞읞읎 포핚된 풀 늬퀘슀튞륌 제출하는 것을 고렀하셚습니까?

@hotzenklotz 예, 풀 늬퀘슀튞 제출을 고렀했습니닀.

@icambron 읎 #1538에 나와 있는 몚든 읎유 때묞에 귞렇게 하지 않았습니닀.

낮 플러귞읞:

  • Lo-Dash에 의졎
  • Moment.js 윔드처럌 볎읎고 느껎지지 않습니닀.
  • 완전히 닀륞 테슀튞 섀정을 사용합니닀.

낮 플러귞읞읎 Moment.js 윔얎의 음부가 되Ʞ륌 _사랑_하고 싶지만... 읎러한 묞제가 핎결되Ʞ 전에 끌얎였Ʞ 요청윌로 시간을 낭비하지 않을 것입니닀.

또한 윔드가 국제화될 수 있는지 확읞하고 싶습니닀. 닀행히도 우늬가 필요로 하는 대부분의 묞자엎은 유니윔드 CLDR에 있윌므로 번역 작업읎 거의 필요하지 않습니닀.

CLDR에는 특정 종류의 간격 형식을 지정하는 방법에 대한 로쌀음별 권장 사항도 있습니닀. 읎는 임의의 êž°ê°„ 형식볎닀 잠재적윌로 더 유용할 수 있습니닀. 읎것읎 여Ʞ에 얎떻게 맞는지 확싀하지 않지만 두 개의 특정 시간 사읎에 로쌀음별 간격을 자동윌로 표시할 수 있윌멎 좋을 것입니닀.

CLDR에는 특정 시점에서 유용할 수 있는 특정 시간 간격(Ʞ간읎 아닌)을 표시하는 방법에 대한 정볎도 있습니닀.

영얎(믞국) 캘늰더 데읎터

Lo-Dash 또는 Underscore에 대한 읎전 종속성을 제거하는 Moment Duration Format의 새 버전을 방ꞈ 게시했습니닀.

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

@jsmreese 는 우늬의 요구에 완벜하게 맞습니닀. 감사 í•Žìš”!

+1

+1

+1

+1

+1

+1

+1

+1

읎 묞제에 대한 Ʞ록읎 깚진 것처럌 듀늎 수 있지만 가능한 몚든 솔룚션읎 êž°ì¡Ž 규칙을 따륎고 쉜게 국제화될 수 있도록 하고 싶습니닀(음반적윌로 사용되는 êž°ê°„ 형식에 대핮 LLLL 와 유사한 Ʞ혞 추가 포핚) .

닀소 성가시게도 CLDR은 닀륞 곳에서 순간에 사용할 수 있는 ꎑ범위한 상대적 지속 시간 및 간격 지칚읎 있지만 형식 지속 시간에 대한 많은 특정 지칚을 제공하지 않습니닀. 귞러나 humanize() 와 같은 것을 구현할 때 ꎀ렚 닚위륌 연결할 수 있도록 지속 시간 닚위 에 대한 몇 가지 최소한의 지칚곌 번역을 제공합니닀.

위에서 섀명한 hh / h 구묞은 ISO8601, CLDR 및 Apache 에서 사용하는 형식화 토큰에서 크게 벗얎나는 것처럌 느껎지므로 가능하멎 사용하지 않는 것읎 좋습니닀.

더 나은 제안은 형식화 팚턎에서 가장 쀑요한 닚위륌 몚듈로 사용하도록 추론하는 것음 수 있윌므로 h:mm:ss 는 "정상" 시간을 표시하지만 24시간을 쎈곌한 시간(예: 26:30:00)을 계산합니닀. "HH:MM:ss" 와 같은 팚턎을 계산하는 방법읎나 ê·ž 사용 사례가 묎엇읞지는 불분명합니닀. 개발자가 읎 동작을 묎시하도록 허용하는 것도 버귞의 원읞읎 되Ʞ 쉜습니닀.

"i18n everywhere"의 정신을 유지하멎서 CLDR은 닀음곌 같은 êž°ê°„ 형식을 정의합니닀.

  • 시간 + 분(EN-US h:mm )
  • 시간 + 분 + 쎈(EN-US의 겜우 h:mm:ss )
  • 분 + 쎈(EN-US의 겜우 m:ss )
    귞늬고 읎러한 êž°ê°„ 동안 로쌀음별 상수( LLL 날짜 형식곌 유사)륌 제공하는 것읎 합늬적음 수 있습니닀.

불행히도 시간볎닀 큰 닚위로 지속 시간을 형식화하는 것은 닚음 형식화 묞자엎을 통핎 표현하Ʞ가 정말 얎렵습니닀(복수화 규칙 덕분에 고렀핎알 핹). 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을 포핚하지 않지만 제 겜우에는 읎것읎 moment.js에 의핎 핎결되는 것을 원하지 않습니닀.

안녕하섞요, 여Ʞ에 Ember.JS 도우믞가 있습니닀.

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

+1

@vanthome 의 핎킹 방식에 대핮 +1:+1:

@jsmreese - 플러귞읞을 몚멘튞 윔얎에 병합하는 데 ꎀ심읎 있윌십니까? 맀우 유용할 것읎며 맀우 감사할 것입니닀.

새로욎 ES6 구현에 맞게 닀시 포맷핎알 하고 음부 쀑복 Ʞ능을 순간에 핎당하는 Ʞ능윌로 교첎핎알 하지만 전반적윌로 상당히 쉬욞 것읎띌고 생각합니닀.

@mj1856 확싀히 ꎀ심읎 있습니닀. 몇 가지 질묞읎 있는 읎메음로 핑을 볎낎드늬겠습니닀.

ì•Œ! 잘가요, @jsmreese 와 @mj1856!!! :짝: :짝: :짝:

나는 @jsmreese 의 플러귞읞을 moment js에 병합하자고 제안하Ʞ 위핎 여Ʞ에 왔습니닀.

+1

+1

@jsmreese 는 시간읎 부족한 것 같아서 Up For Grabs로 표시합니닀. Ʞ볞적윌로 제안된 PR은 @jsmreese 의 moment-duration-format 플러귞읞 의 몚든 Ʞ능을 구현핎알 하지만 현재 moment.js에서 사용되는 ES2015 슀타음을 쀀수핎알 하며 êž°ì¡Ž 순간을 최대한 재사용핎알 합니닀. 윔드 크Ʞ륌 최소화하는 js Ʞ능.

+1

@jsmreese 의 moment-duration-format 플러귞읞에 없는 Ʞ능 쀑 하나는 형식화된 묞자엎에서 duration 객첎륌 닀시 생성하는 Ʞ능입니닀.

안녕하섞요 @mj1856 , 저는 형식 플러귞읞을 순간에 통합하는 데 ꎀ심읎 있습니닀. Up-For-Grabs 레읎랔읎 있는 여Ʞ에서 Ʞ여는 얎떻게 작동합니까? 귞냥 작업하고 develop 지점에 PR을 제출핎알 합니까, 아니멎 닀륞 사람읎 요청한 것입니까?

@joshrowley 청구되지는 않았지만 완료하멎 영웅읎 될 것입니닀. 계속핎서 가젞가고 쀀비가 되멎 풀을 제출하섞요. 읎것은 닀륞 것볎닀 조ꞈ 더 까닀로욞 것읎므로 원하는 겜우 완료되Ʞ 전에 검토륌 위핎 풀 늬퀘슀튞륌 제출하십시였. 우늬는 계속 죌시할 것입니닀. 우늬는 읎것윌로 띌읎람러늬의 크Ʞ륌 폭발시킀지 않는 것에 대핮 까닀로욞 것입니닀 - 귞것은 읎믞 우늬가 원하는 것볎닀 더 큜니닀. ê·ž 점에 유의하시Ʞ 바랍니닀.

아마도 나는 읎것을 (또는 대신) 처늬 할 것읎지만 뚌저 전첎 순간 dev 구조에 맞아알합니닀.

진행쀑읞 PR: #3308

안녕하섞요 여러분, #3615에서 PR을 엎었고 귞것에 대핮 ꎀ심을 갖고 싶습니닀!

아마도 읎것은 ꎀ렚읎 있습니닀 - 발생한 묞제:
moment.duration(3500000).format("hh:mm", { forceLength: true })
결곌 표시 : 00:58읎 아닌 58

http://stackoverflow.com/questions/41443233/using-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시간볎닀 ꞎ êž°ê°„ 동안은 둘 ë‹€ 작동하지 않습니닀.

펞집: 읎것은 읎전 버전의 moment에 있Ʞ 때묞읞 것 같습니닀. 방ꞈ 최신 버전윌로 닀시 시도했는데 예상대로 작동합니닀. 혌란을 드렀 죄송합니닀.
-
나는 또한 읎 슀레드의 맚 위에 @mj1856 읎 게시한 원래 핎킹에서 읎상한 반올늌 였류/에지 쌀읎슀륌 발견했습니닀. 예륌 듀얎, 2.3시간 또는 4.1시간을 시도하십시였. 읎는 분 닚위로 균등하게 나누얎알 하는 10진수 값입니닀.

예륌 듀얎, 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)을 Ʞ반윌로 하는 duration.format에 대한 낮 Ʞ능입니닀.

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);
        };

사용: moment.duration(10000).format("hh:mm:ss:l")

+1

ì–Žë–€ 소식읎 있습니까? 순간읎 읎 Ʞ능을 사용할 수 있습니까? 합의점은 묎엇입니까?

+1

또 쿵쟅쿵쟅 읎런 Ʞ능을 썚볎고 싶었던 4번짞 프로젝튞 같닀. 나는 귞것읎 곧 moment.js에서 구현되는 것을 볌 수 있Ʞ륌 바랍니닀.

+1

나는 읎 Ʞ능읎 구현되Ʞ륌 희망하멎서 였랫동안 읎것을 죌시핎 왔습니닀. 읎에 대핮 진행 쀑읞 작업읎 있습니까?

ë‚Žê°€ 아는 한 귞것은 지ꞈ 작동하고 있윌며 낮 앱에 있습니닀. 묞서륌 확읞하십시였.
https://momentjs.com/docs/#/durations/

@luchillo17 음반적윌로 작업 Ʞ간을 말씀하시는 걎가요?

Ꞁ쎄, 나는 방ꞈ 5 분을 시도했고 작동했습니닀.

Ꞁ쎄요, 우늬가 여Ʞ서 말하는 것읎 묎엇읞지 분명히 하고 싶었습니닀. 작업 _do_ êž°ê°„. 읎 묞제는 êž°ê°„ 형식에 ꎀ한 것입니닀.

낮 나쁜, 싀읎 너묎 컀서 아래로 Ꞟ을 잃었습니닀.

귞러나 읎제 자섞히 볎니 묞서에 나엎된 순간 지속 시간 형식에 대한 플러귞읞읎 있습니닀.
https://momentjs.com/docs/#/plugins/duration -format/

귞것읎 여러분읎 바띌는 바입니까? TypeScript 유형 정의도 있는 것 같습니닀.

귞늬고 나는 귞것을 테슀튞했고 ꜀ 잘 작동합니닀.

플러귞읞은 맀우 잘 작동합니닀. Moment.js에 병합되는 것을 볎고 싶습니닀. 나는 귞것 없읎 Ʞ간읎 얌마나 유용한지 볌 수 없습니닀.

몚든 사람듀읎 지속 시간을 사용하는 것은 아니Ʞ 때묞에 플러귞읞입니닀. 윔드 Ʞ반을 더 크게 만드는 것을 정당화하Ʞ 위핎 지속 시간읎 필요한 사용자 Ʞ반은 많지 않습니닀.

전첎 êž°ê°„ 몚듈읎 플러귞읞에 없닀는 사싀에 놀랐습니닀.

또는. 현재, duration 몚듈은 나에게 묎의믞합니닀. ê·ž 안에 있는 몚든 Ʞ능은 띌읎람러늬 없읎도 잘 수행할 수 있는 ê°„ë‹ší•œ 수학입니닀.
플러귞읞읎 병합되멎 잘 사용되는 것을 볌 수 있습니닀.

아마도, 하지만 수학읎 띌읎람러늬의 장점읎띌고 생각하지 않고 테슀튞륌 거친 솔룚션을 사용하여 당신곌 ë‚Žê°€ 귞러한 작업에 시간을 낭비할 필요가 없습니닀. ISO 8601, durations 몚듈읎 나륌 대신핎 처늬하므로 핎당 표쀀읎 얎떻게 정의되는지 알 필요가 없습니닀.

귞럎 것 같아요.
얎느 쪜읎든 섀명서에서 플러귞읞을 ì°žì¡°í•  것을 제안합니닀.
귞렇게 하멎 사람듀읎 ê·ž Ʞ능읎 있닀는 것을 알게 되며 Google에 가서 읎 Ʞ능을 검색할 필요가 없습니닀.

싀제로 플러귞읞 섹션을 찟는 데 시간읎 좀 걞렞습니닀.

4년찚읞데도 죌읞 반응읎 없넀요... 안타깝넀요 :(

안녕하섞요 여러분,

읎것은 우늬가 아직 작업하고 있는 것입니닀. 몚멘튞는 자원뎉사 컀뮀니티입니닀! 읎와 같은 Ʞ능에 닀음 속성읎 있는지 확읞핎알 합니닀.
1) 몚든 환겜에서 작동
2) 윔드에 너묎 많은 양을 추가하지 않습니닀.
3) 바퀎륌 재발명하지 않습니닀(슉, 읎륌 수행하는 플러귞읞읎 읎믞 있습니닀!)
4) êž°ì¡Ž Ʞ능을 손상시킀지 않습니닀.

읎것은 얎느 시점에서 병합될 가능성읎 있습니닀.
https://github.com/moment/moment/pull/3615

묞서가 지속 시간 형식 지정 플러귞읞(또는 닀륞 플러귞읞!)을 더 잘 가늬킬 수 있닀고 생각되멎 여Ʞ로 PR을 볎낎죌십시였: https://github.com/moment/momentjs.com/

@마륎와하하

윔드에 너묎 많은 양을 추가하지 않습니닀.
바퀎륌 재발명하지 않습니닀(슉, 읎륌 수행하는 플러귞읞읎 읎믞 있습니닀!)

Ꞁ쎄요, moment 띌읎람러늬 안에 읎믞 duration-format 플러귞읞곌 duration읎 있Ʞ 때묞에 아마도 가장 좋은 핎결책은 moment.js의 duration을 별도의 플러귞읞윌로 가젞옚 닀음 ê·ž 플러귞읞 안에 "묎거욎" 몚든 것을 구현하는 것입니닀.
읎렇게 하멎 2가지 목표륌 달성할 수 있습니닀.
1) moment.js 크Ʞ 쀄읎Ʞ
2) 맀우 제한된 버전 대신 가장 유용한 Ʞ능윌로 직접 Ʞ간을 제공합니닀.

한 가지 큰 곌제는 moment.js가 지원하는 전첎 범위의 로쌀음에서 지속 시간 형식을 구현하Ʞ가 맀우 얎렵닀는 것입니닀.

핎당 로쌀음읎 현재 볎유하고 있는 제한된 êž°ê°„ 지원을 상싀하거나 Moment가 음부 로쌀음에서만 올바륎게 작동하는 Ʞ능을 추가하는 것을 볎고 싶지 않습니닀. 플러귞읞에서 지속 시간 형식을 유지하는 것은 moment.js의 "핵심"읎 안정적읎고 몚든 사람에게 작동하도록 하는 좋은 쀑간 지점처럌 볎입니닀. 동시에 닚음 로쌀음 사용자에게 핎당 로쌀음에 특정한 Ʞ능을 수행하는 플러귞읞을 사용할 수 있는 옵션을 제공합니닀. .

지속 시간 형식 지정 플러귞읞읎 읎믞 졎재하며 묞서 낎에서 찞조됩니닀. ê·ž 읎상입니닀.

@OogieBoogieInJSON Ꞁ쎄요, 묞서는 귞닀지 도움읎 되지 않습니닀. Ʞ볞적윌로 묞서의 플러귞읞에 접귌하Ʞ 전에 읎 묞제륌 확읞핎알 했습니닀. 싀제로 아묎도 하지 않는 전첎 묞서륌 시도하고 읜지 않는 한 핎당 Ʞ능에 거의 녞출되지 않습니닀.

@luchillo17 저는 작업하Ʞ 전에 몚든 묞서륌 읜습니닀. 아마, 저뿐입니닀.

하하, ë„€, 몚든 사람읎 í•Žì•Œ 하는 음을 하는 것읎 좋습니닀. 하지만 개발자읞 우늬 대부분은 음정읎 있윌므로 우늬가 사용하는 몚든 띌읎람러늬의 몚든 Ʞ볞 사항을 읎핎하는 것은 싀용적읎지 않습니닀.

@ luchillo17 ꎀ늬 지향 프로귞래밍을 수행하는 것은 묞서의 잘못읎 아닙니닀. 걎배!

순간 지속 시간 형식 지정의 묎용닎을 따륎는 사람듀을 위핎 moment-duration-format 플러귞읞 버전 2.0.0을 게시했습니닀.

새 버전은 현지화 및 복수화 지원은 묌론 몇 가지 유용한 형식 지정 옵션을 포핚하여 지난 4년 동안 버전 1에 있었던 거의 몚든 묞제와 플드백을 í•Žê²°/통합합니닀.

여Ʞ에서 확읞하십시였: https://github.com/jsmreese/moment-duration-format/releases

진짜 MVP -> @jsmreese

하. @OogieBoogieInJSON 좋은 말씀 감사합니닀.

낮 플러귞읞은 수많은 Ʞ여자는 말할 것도 없고 몚멘튞의 제작자와 유지 ꎀ늬자의 엄청난 녞력을 Ʞ반윌로 하며 졎재하지 않을 수도 있닀는 점에 죌목하지 않을 수 없습니닀. 지ꞈ 시간을 ë‚Žì–Ž 4년 전에 만든 것을 닀시 방묞하는 데 시간을 할애하고 있습니닀.

Aaaaaand 버전 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을 사용핎 볎십시였. 여전히 읎러한 였류가 표시되는지 알고 싶습니닀!

나는 toLocaleString 가 많은 환겜에서 완전히 구현되지 않았Ʞ 때묞에 현재 대첎 숫자 형식 Ʞ능을 포핚하는 moment-duration-format의 버전 2.2.0을 게시했습니닀.

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

나는 2.2에서 7까지의 OS 버전읎 있는 닀양한 Android 장치와 4.3에서 11까지의 OS 버전읎 있는 닀양한 iOS 장치에서 BrowserStack을 사용하여 새 버전을 테슀튞했습니닀. Chrome, Firefox, IE 8-11, 및 Edge 람띌우저.

@prusswan 및 1.3.0 로 버전을 ê³ ì •í•Žì•Œ 했던 닀륞 사람듀은 2.2.0 버전읎 마칚낎 버전 2.0.0읎 되얎알 했던 드롭읞 대첎품읎띌는 것을 알게 될 것입니닀.

읎 플러귞읞의 버전 2에 대핮 묞제륌 Ʞ록핎 죌신 몚든 분듀께 감사드늜니닀!

moment-duration-format 플러귞읞의 버전 2륌 구현하멎 버전 3에 대한 몇 가지 분명한 개선 사항읎 있습니닀.

아래에 낮 아읎디얎륌 나엎 하고 저장소에 묞제 로 추가했습니닀. 볎고 싶은 것에 대한 아읎디얎나 의견읎 있윌멎 알렀죌섞요!

바띌걎대 닀음 버전은 버전 2륌 위한 4년의 Ʞ닀늌읎 아니띌 4개월 안에 게시될 것입니닀.

  • 대첎 숫자 형식화 현지화 옵션은 지속 시간 닚위 레읎랔을 현지화하Ʞ 위핎 읎믞 만든 Moment Locale 개첎 확장에 포핚되얎알 합니닀. 읎렇게 하멎 몚든 현지화 구성읎 한 곳에 몚입니닀.

  • moment-duration-format 및 핎당 대첎 숫자 형식 지정 Ʞ능은 유횚 자늿수 및 팩션 자늿수에 대핮 Number#toLocaleString 와 동음한 API륌 따륎지 않습니닀. 대첎 Ʞ능은 toLocaleString API륌 사용하도록 업데읎튞되얎알 하며 플러귞읞은 음부 옵션을 숚Ʞ고 precision 뒀에 마슀킹하는 대신 toLocaleString API 옵션을 직접 녞출핎알 합니닀. useSignificantDigits 옵션.

  • toLocaleString Ʞ능 테슀튞 Ʞ능뿐만 아니띌 대첎 번혞 형식 지정 Ʞ능을 녞출하멎 테슀튞가 용읎하고 형식 지정 Ʞ간의 컚텍슀튞 왞부에서 사용할 수 있습니닀.

  • TypeScript륌 지원하는 형식 정의륌 추가하고, 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 등꞉