Date 객체는 생성자 함수
Date 생성자 함수는 날짜와 시간을 가지는 인스턴스를 생성
생성된 인스턴스는 기본적으로 현재 날짜와 시간을 나타내는 값을 가짐
현재 날짜와 시간이 아닌 다른 날짜와 시간을 다루고 싶은 경우, Date 생성자 함수에 명시적으로 해당 날짜와 시간 정보를 인수로 지정
Date 생성자 함수로 객체를 생성하는 방법
1. new Date()
인수를 전달하지 않으면 현재 날짜와 시간을 가지는 인스턴스를 반환
const date = new Date();
console.log(date); // Thu May 16 2019 17:16:13 GMT+0900 (한국 표준시)
let date = new Date(0);
console.log(date); // Thu Jan 01 1970 09:00:00 GMT+0900 (한국 표준시)
// 1s = 1,000ms
// 86400000ms는 1day를 의미
date = new Date(86400000);
console.log(date); // FFri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
let date = new Date('May 16, 2019 17:22:10');
console.log(date); // Thu May 16 2019 17:22:10 GMT+0900 (한국 표준시)
date = new Date('2019/05/16/17:22:10');
console.log(date); // Thu May 16 2019 17:22:10 GMT+0900 (한국 표준시)
// 월을 나타내는 4는 5월을 의미한다.
let date = new Date(2019, 4);
console.log(date); // Wed May 01 2019 00:00:00 GMT+0900 (한국 표준시)
date = new Date(2019, 4, 16, 17, 24, 30, 0);
console.log(date); // Thu May 16 2019 17:24:30 GMT+0900 (한국 표준시)
// 가독성이 훨씬 좋다.
date = new Date('2019/5/16/17:24:30:10');
console.log(date); // Thu May 16 2019 17:24:30 GMT+0900 (한국 표준시)
let date = Date();
console.log(typeof date, date); // string Thu May 16 2019 17:33:03 GMT+0900 (한국 표준시)
Date 메소드
1. Date.now
1970년 1월 1일 00:00:00(UTC)을 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환
const now = Date.now();
let d = Date.parse('Jan 2, 1970 00:00:00 UTC'); // UTC 표현1
d = Date.parse('Jan 2, 1970 09:00:00'); // KST 표현2
d = Date.parse('1970/01/02/09:00:00'); // KST 표현3
console.log(d); // 86400000
let d = Date.UTC(1970, 0, 2);
console.log(d); // 86400000
d = Date.UTC('1970/1/2'); //정해진 형식만 가능
console.log(d); // NaN
const today = new Date().getFullYear();
console.log(today); // 2019
const today = new Date();
today.setFullYear(1900, 0, 1); // 년도 지정
year = today.getFullYear();
console.log(year); // 1900
const month = new Date().getMonth();
// Thu May 16 2019 17:44:03 GMT+0900 (한국 표준시)
console.log(month); // 4
const today = new Date();
today.setMonth(11, 1); // 월/일을 지정, 12월 1일
console.log(today); // Sun Dec 01 2019 17:45:20 GMT+0900 (한국 표준시)
const date = new Date().getDate();
console.log(date);
const today = new Date();
today.setDate(1); //일자 지정
console.log(today); // Wed May 01 2019 17:47:01 GMT+0900 (한국 표준시)
const today = new Date();
const day = today.getDay();
console.log(day);
const today = new Date();
const hours = today.getHours();
console.log(hours); // 17
const today = new Date();
today.setHours(11, 0, 0, 0); // 시간/분/초/밀리초 지정, 00:00:00:00
hours = today.getHours();
console.log(hours); // 11
const today = new Date();
const minutes = today.getMinutes();
console.log(minutes);
const today = new Date();
today.setMinutes(5, 10, 999); // 분/초/밀리초 지정, 05:10:999
minutes = today.getMinutes();
console.log(minutes); // 5
const today = new Date();
const seconds = today.getSeconds();
console.log(today);
console.log(seconds);
const today = new Date();
today.setSeconds(15, 0); // 초/밀리초 지정, 10:000
seconds = today.getSeconds();
console.log(seconds); // 15
const today = new Date();
const ms = today.getMilliseconds();
console.log(today);
console.log(ms);
const today = new Date();
today.setMilliseconds(123); // 밀리초 지정
const ms = today.getMilliseconds();
console.log(ms); // 123
const today = new Date();
const time = today.getTime();
console.log(time); // 1557996968335
const today = new Date();
today.setTime(86400000); // 86400000 === 1day
const time = today.getTime();
console.log(today); // Fri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
console.log(time); // 86400000
const today = new Date().getTimezoneOffset() / 60;
console.log(today); // -9
const d = new Date('2019/5/16/18:30');
console.log(d.toDateString()); // Thu May 16 2019
const d = new Date('2019/5/16/18:30');
console.log(d.toTimeString()); // 18:30:00 GMT+0900 (한국 표준시)