728x90
반응형
var startTime = moment('2024-08-09T08:00:00');
var endTime = moment('2024-08-10T10:05:45');
var duration = moment.duration(endTime.diff(startTime));
var days = Math.floor(duration.asDays());
var hours = moment.utc(duration.asMilliseconds()).format("HH");
var minutes = moment.utc(duration.asMilliseconds()).format("mm");
var seconds = moment.utc(duration.asMilliseconds()).format("ss");
console.log(days + "일 " + hours + "시간 " + minutes + "분 " + seconds + "초");
// 출력: 1일 02시간 05분 45초
- moment.duration(): startTime과 endTime 간의 차이를 duration 객체로 만듭니다.
- 날짜 형식화 (format() 사용):
- moment.utc(duration.asMilliseconds()): duration을 밀리초로 변환하고, 이를 moment 객체로 변환하여 UTC로 설정합니다.
- format("HH"): 시간을 두 자리 형식으로 반환합니다.
- format("mm"): 분을 두 자리 형식으로 반환합니다.
- format("ss"): 초를 두 자리 형식으로 반환합니다.
- 일(day) 처리:
- days = Math.floor(duration.asDays());를 사용해 asDays()로 전체 일 수를 정수로 계산합니다.
이렇게 하면 moment.js에서 제공하는 format() 메서드를 활용해 두 자리 숫자를 쉽게 포맷할 수 있습니다. 이 방법을 사용하면 앞에 0을 자동으로 붙여서 두 자리 형식으로 시간을 표시할 수 있습니다.
728x90
반응형
'Front > JS & jQuery' 카테고리의 다른 글
[jQuery][datepicker] minViewMode (0) | 2024.08.25 |
---|---|
[js] moment.js 라이브러리의 utc() 함수 (0) | 2024.08.16 |
[js] padStart() 함수 (0) | 2024.08.14 |
[js] moment.js 라이브러리 duration() 함수 (0) | 2024.08.13 |
[js] moment.js diff() 함수 (0) | 2024.08.12 |