>웹 프론트엔드 >JS 튜토리얼 >Moment.js를 사용하여 두 DateTime 사이의 시간 차이를 정확하게 계산하고 형식을 지정하고 24시간을 초과하는 차이를 처리하려면 어떻게 해야 합니까?

Moment.js를 사용하여 두 DateTime 사이의 시간 차이를 정확하게 계산하고 형식을 지정하고 24시간을 초과하는 차이를 처리하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-26 12:33:14730검색

How can Moment.js be used to accurately calculate and format the time difference between two DateTimes, handling differences exceeding 24 hours?

DateTimes 간의 시차 가져오기

시간 기반 데이터로 작업할 때 지정된 두 날짜 또는 시간 간의 시차를 이해하는 것이 중요합니다. . 이 차이는 Moment.js 라이브러리를 사용하여 계산할 수 있습니다.

Moment.js 솔루션

Moment.js는 시간 차이를 계산하는 강력한 방법을 제공합니다. 다음 예를 고려하십시오.

var now  = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";

console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss"));

이 코드는 "00:39:30"을 출력해야 하며 "지금"과 "그때" 사이의 시간 차이를 나타냅니다.

시간 간격 변환

시간 차이가 24시간을 초과하는 경우 위의 접근 방식은 잘못된 값을 반환할 수 있습니다. 이 문제를 해결하려면 보다 강력한 솔루션을 사용하십시오.

var now  = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");

이 수정된 코드에서는 시간 차이를 밀리초(ms)로 변환한 다음 moment.duration() 함수를 사용하여 기간 객체( 디). 마지막으로 기간 객체에서 시, 분, 초를 추출하고 이를 시간 간격으로 형식화합니다. 이 접근 방식은 24시간 이상의 시간 차이에도 정확한 결과를 보장합니다.

Moment-Duration-Format 플러그인

또는 moment-duration-format 플러그인 사용을 고려해 보세요. 이는 기간 객체의 형식을 지정하기 위한 전용 방법을 제공합니다.

var now  = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = d.format("hh:mm:ss");

이 플러그인을 사용하면 시간 차이는 다음과 같습니다. 수동으로 계산할 필요 없이 시간 간격으로 직접 형식화됩니다.

위 내용은 Moment.js를 사용하여 두 DateTime 사이의 시간 차이를 정확하게 계산하고 형식을 지정하고 24시간을 초과하는 차이를 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.