- UTC : Coordinated Universal Time 협정 세계시
- GMT : Greewich Mean Time, 그리니치 평균시
- KST : Korean Standard Time, 한국 표준시
Date는 표준 빌트인 객체이고, 날짜와 시간을 위한 메서드를 제공한다. 현재 날짜와 시간은 코드가 실행된 시스템의 시계에 의해 결정된다.
Date 생성자 함수
Date 객체는 내부적으로 정수값을 갖는데, 이는 1970년 1월 1일 00:00:00(UTC)를 기점으로 객체가 나타내는 날짜와 시간까지의 밀리초(천분의 1초)를 나타낸다.
Date 메서드
Date.prototype.getTime
1970년 1월 1일 00:00:00(UTC)를 기점으로 Date 객체의 시간까지 경과된 밀리초를 반환한다.
new Date('2020/07/24/12:30').getTime(); // -> 1595561400000
Date.prototype.setTime
1970년 1월 1일 00:00:00(UTC)를 기점으로 Date 객체의 시간까지 경과된 밀리초를 생성한다.
const today = new Date();
// 1970년 1월 1일 00:00:00(UTC)를 기점으로 경과된 밀리초 설정
today.setTime(86400000); // 86400000는 1day를 나타낸다.
console.log(today); // -> Fri Jan 02 1970 09:00:00 GMT+0900 (대한민국 표준시)
Date.prototype.getDay
Date 객체의 요일을 숫자로 정했는데, 일요일을 0으로 두고 시작한다.
요일 | 반환값 |
일 | 0 |
월 | 1 |
화 | 2 |
수 | 3 |
목 | 4 |
금 | 5 |
토 | 6 |
시계 예제
(function printNow() {
const today = new Date();
const dayNames = [
'(일요일)',
'(월요일)',
'(화요일)',
'(수요일)',
'(목요일)',
'(금요일)',
'(토요일)'
];
// getDay 메서드는 해당 요일(0 ~ 6)을 나타내는 정수를 반환한다.
const day = dayNames[today.getDay()];
const year = today.getFullYear();
const month = today.getMonth() + 1;
const date = today.getDate();
let hour = today.getHours();
let minute = today.getMinutes();
let second = today.getSeconds();
const ampm = hour >= 12 ? 'PM' : 'AM';
// 12시간제로 변경
hour %= 12;
hour = hour || 12; // hour가 0이면 12를 재할당
// 10미만인 분과 초를 2자리로 변경
minute = minute < 10 ? '0' + minute : minute;
second = second < 10 ? '0' + second : second;
const now = `${year}년 ${month}월 ${date}일 ${day} ${hour}:${minute}:${second} ${ampm}`;
console.log(now);
// 1초마다 printNow 함수를 재귀 호출한다. 41.2.1절 "setTimeout / clearTimeout" 참고
setTimeout(printNow, 1000);
}());
'Today I Learned' 카테고리의 다른 글
모던 자바스크립트 Deep Dive 32장 String (0) | 2022.04.19 |
---|---|
모던 자바스크립트 Deep Dive 31장 RegExp (0) | 2022.04.19 |
모던 자바스크립트 Deep Dive 29장 Math (0) | 2022.04.19 |
모던 자바스크립트 Deep Dive 28장 Number (0) | 2022.04.16 |
모던 자바스크립트 Deep Dive 27장 배열 (0) | 2022.04.14 |