- 현在년도
moment().format("YYYY") // 문자열 "2020"
moment().year() / moment().get('year') // 숫자 2020
- 현在월
moment().format('MM') // September인 경우, 문자열 "09"
moment().month() / moment().get('month') // September인 경우, 숫자 8
- 현在요일
moment().format('dddd') // Sunday인 경우, 문자열 "Sunday"
moment().locale('ko').format('dddd') // Sunday인 경우, 한국어로 "일요일"
moment().day() / moment().get('day') // Sunday인 경우, 숫자 0
moment().get('isoWeekday') // Sunday인 경우, 숫자 7
- 현在일자
moment().date() / moment().get('date') // 오늘날이 27일인 경우, 숫자 27
- 현在년월일
moment().format('YYYY-MM-DD') // 문자열 "2020-09-27"
moment().format('YYYY/MM/DD') // 문자열 "2020/09/27"
- 현在시분초
moment().format('HH:mm:ss') // 24시간제로, 문자열 "17:19:55"
moment().format('hh:mm:ss') // 12시간제로, 문자열 "05:19:55"
- 현在월의 총일수
moment().daysInMonth() // September는 30일, 숫자 30
- 현在타임스탬프
moment().format('X') // 문자열, 초 기반 타임스탬프 "1601201995"
moment().unix() // 숫자, 초 기반 타임스탬프 1601201995
moment().format('x') // 문자열, 밀리초 기반 타임스탬프 "1601201995364"
moment().valueOf() // 숫자, 밀리초 기반 타임스탬프 1601201995364
- 현在년월일시분초
moment().toArray() // 배열 [2020, 8, 27, 17, 40, 19, 364]
moment().toObject() // 객체 { date: 27, hours: 17, milliseconds: 364, minutes: 40, months: 8, seconds: 19, years: 2020 }
- 시간 설정
- 연도 설정 (월, 일, 요일, 시간, 분, 초와 같이 동일하게 설정할 수 있습니다)
moment().year(2019) // 2019년으로 설정된 Moment 객체 반환
moment().set('year', 2019)
moment().set({year: 2019})
moment().add(1, 'years') / moment().add({years: 1}) // 2020년에서 2021년으로 설정
moment().subtract(1, 'years') / moment().subtract({years: 1}) // 2020년에서 2019년으로 설정
- JavaScript 원시 Date 객체로 변환
moment().toDate()
new Date(moment())
- 비교
moment().diff(Moment | String | Number | Date | Array)
- 특정일의 시작 및 종료 시간 타임스탬프 계산
- 특정일의 시작 시간获取
// time는 특정일의 타임스탬프입니다
startTime(time) {
const timeDate = new Date(time);
return timeDate.setHours(0, 0, 0, 0);
}
- 특정일의 종료 시간获取
endTime(time) {
const timeDate = new Date(time);
return timeDate.setHours(23, 59, 59, 999);
}
- 시간 형식 변환 유틸리티 함수
export const formatTime = (timestamp, fmt) => {
if (timestamp === null) {
return null;
}
if (typeof timestamp === 'string' && !/^\d+$/.test(timestamp)) {
let lastDotIndex = timestamp.lastIndexOf('.');
if (lastDotIndex > 0) {
// 밀리초 제거, 없으면 Date 객체로 변환시 오류 발생
timestamp = timestamp.substring(0, lastDotIndex);
}
timestamp = timestamp.replace(/-/g, '/');
}
let date = new Date(timestamp);
let o = {
'M+': date.getMonth() + 1, // 월
'd+': date.getDate(), // 일
'h+': date.getHours(), // 시간
'm+': date.getMinutes(), // 분
's+': date.getSeconds(), // 초
'q+': Math.floor((date.getMonth() + 3) / 3), // 분기
'S': date.getMilliseconds() // 밀리초
};
let result = fmt;
if (/(y+)/.test(result)) {
result = result.replace(RegExp.$1, (date.getFullYear().toString()).substr(4 - RegExp.$1.length));
}
for (let k in o) {
if (new RegExp(`(${k})`).test(result)) {
result = result.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : `00${o[k]}`.substr(o[k].toString().length));
}
}
return result;
}<br></br>// formatTime(new Date().setHours(0, 0, 0, 0), 'yyyy-MM-dd hh:mm') → 오늘 오전 0시 0분
// formatTime(new Date().setHours(23, 59, 59, 999), 'yyyy-MM-dd hh:mm') → 오늘 오후 11시 59분