[javascript] moment.js 기간에 format ()을 어떻게 사용합니까?

지속 시간 객체에 moment.js format 메소드를 사용할 수있는 방법이 있습니까? 문서의 어느 곳에서도 찾을 수 없으며 지속 기간 객체의 속성으로 보이지 않습니다.

나는 다음과 같은 것을 할 수 있기를 원한다.

var diff = moment(end).unix() - moment(start).unix();
moment.duration(diff).format('hh:mm:ss')

또한 이러한 종류의 기능을 쉽게 수용 할 수있는 다른 라이브러리가 있으면 권장 사항에 관심이 있습니다.

감사!



답변

우리는 moment.js의 지속 시간에 어떤 종류의 서식을 추가하려고합니다. 참조 https://github.com/timrwood/moment/issues/463를

도움이 될 수있는 몇 가지 다른 라이브러리는 http://countdownjs.org/https://github.com/icambron/twix.js입니다.


답변

// set up
let start = moment("2018-05-16 12:00:00"); // some random moment in time (in ms)
let end = moment("2018-05-16 12:22:00"); // some random moment after start (in ms)
let diff = end.diff(start);

// execution
let f = moment.utc(diff).format("HH:mm:ss.SSS");
alert(f);

JSFiddle을보십시오


답변

지속 시간을 ms로 변환 한 다음 순간으로 변환하십시오.

moment.utc(duration.as('milliseconds')).format('HH:mm:ss')


답변

이 플러그인 Moment Duration 형식을 사용하십시오 .

예:

moment.duration(123, "minutes").format("h:mm");


답변

이 코드 줄을 사용하십시오.

moment.utc(moment.duration(4500, "seconds").asMilliseconds()).format("HH:mm:ss")


답변

var diff = moment(end).unix() - moment(start).unix();
moment.utc(moment.duration(diff).asMilliseconds()).format("HH:mm:ss.SSS");


답변

내 특정 사용 사례에 가장 적합한 시나리오는 다음과 같습니다.

var duration = moment.duration("09:30"),
    formatted = moment.utc(duration.asMilliseconds()).format("HH:mm");

이것은 개인 내부 속성 _data에 액세스하지 않기 때문에 @Wilson의 답변을 향상시킵니다.