Date
작성
GMT(=UTC): 세계적으로 사용되는 시간 표준 중 하나- 한국 시간: UTC+09:00
Date 객체
- 인자로 받은 UTC 정보로, Date 객체 반환
- 인자를 비어두면, 현재 시간을 기준으로 생성
new Date();
// Mon Sep 05 2022 16:05:29 GMT+0900 (동부 인도네시아 시간)
new Date(1662361847416);
// Mon Sep 05 2022 16:10:47 GMT+0900 (동부 인도네시아 시간)
Date.now()
- 1970년 1월 1일 00:00:00 UTC 이후부터 현재까지 경과한 밀리초를 반환
Date.now()
// 1682559808081
Date의 다양한 메소드 활용하기
const Clock = {
getCurrentTime: function(){
this.getTime(new Date());
},
getTime: function(date) {
if (date instanceof Date) {
const yy = date.getFullYear();
const mm = date.getMonth() + 1;
const dd = date.getDate();
const hh = date.getHours();
const mmm = date.getMinutes();
const ss = date.getSeconds();
const clock = `현재 시간은 ${yy}년 ${mm}월 ${dd}일 ${hh}시 ${mmm}분 ${ss}초 입니다.`;
return this.log(clock);
} else {
return this.log('현재 시간을 구할 수 없습니다.');
}
},
log: console.log
};
Clock.getCurrentTime();
//'현재 시간은 2022년 9월 5일 16시 19분 58초 입니다.'
타임 스탬프 예시
const TimeMap = (() => {
let min = 60;
let hour = min * 60;
let day = hour * 24;
let week = day * 7;
let month = week * 4;
let year = month * 12;
return { min, hour, day, week, month, year };
})();
const TimeTextMap = {
[TimeMap.min]: '분',
[TimeMap.hour]: '시간',
[TimeMap.day]: '일',
[TimeMap.week]: '주',
[TimeMap.month]: '개월',
[TimeMap.year]: '년',
};
function createTimeText(time, standard, suffix) {
return `${Math.floor(time / standard)}${suffix} 전`;
}
const RelativeTime = {
diff: (date) => {
const seconds = (new Date() - date) / 1000;
Object.entries(TimeMap).reduce((text, [time, value]) => {
if (seconds >= value) {
return createTimeText(seconds, value, TimeTextMap[value]);
}
return text;
}, '방금 전');
},
};
export default RelativeTime;