new Date()
현재시간 기준 생성
let now = new Date();
alert( now ); // Wed Apr 22 2020 09:37:56 GMT+0900 (대한민국 표준시)
alert( +now ); // 1587515876470 (date.getTime()과 같은 값)
new Date(milliseconds)
타임스탬프 기준 생성
1970.1.1 0시0분0초를 기준으로 밀리초 후의 시점을 표시
// 1970년 1월 1일 0시 0분 0초(UTC+0)를 나타내는 객체
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );
// 1970년 1월 1일의 24시간 후는 1970년 1월 2일(UTC+0)임
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
new Date(datestring)
날짜 문자열 기준 생성
let date = new Date("2017-01-26");
alert(date);
// 인수로 시간은 지정하지 않았기 때문에 GMT 자정이라고 가정하고
// 코드가 실행되는 시간대(timezone)에 따라 출력 문자열이 바뀝니다.
// 따라서 얼럿 창엔
// Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
// 혹은
// Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)등이 출력됩니다.
new Date(year, month, date, hours, minutes, seconds, ms)
여러 개 인수로 생성
주어진 인수를 조합해 만들 수 있는 날짜가 저장된 객체가 반환됩니다(지역 시간대 기준). 첫 번째와 두 번째 인수만 필수값입니다.
let date = new Date(2011, 0, 1, 2, 3, 4, 567);
alert( date ); // 2011년 1월 1일, 02시 03분 04.567초
date.getFullYear()
- 연도 네 자릿수 반환 getYear()는 이제 비표준 메서드입니다.
date.getMonth()
- 0~11사이의 월을 반환합니다.
date.getDate()
- 1~31사이의 날짜를 반환합니다.
date.getHours()
getMinutes()
getSeconds()
getMilliseconds()
- 시, 분, 초, 밀리초를 반환합니다.
date.getDay()
- 0(일요일)~6(토요일)사이의 요일을 반환합니다.
date.getTime()
- UTF메서드 없음. 주어진 일시와 1970년 1월 1일 00시 00분 00초 사이의 간격(밀리초 단위) 타임스탬프 반환
date.getTimezoneOffset()
- UTF메서드 없음. 현지 시간과 표준 시간의 차이(분)을 반환
setFullYear(year[, month][, date])
setMonth(month, [date])
setDate(date)
setHours(hour, [min], [sec], [ms])
setMinutes(min, [sec], [ms])
setSeconds(sec, [ms])
setMilliseconds(ms)
setTime(milliseconds)
- UTF메서드 없음. (1970년 1월 1일 00:00:00 UTC부터 밀리초 이후를 나타내는 날짜를 설정)
(1) Date객체를 숫자형으로 변경하면 date.getTime()
반환값과 같습니다. 그렇기 때문에 날짜간 덧셈뺄셈이 가능합니다. Date객체는 마이크로초를 지원하진 않지만 대부분의 호스트환경이 지원하므로 호스트환경 메서드를 사용하여 마이크로초를 사용할 수 있습니다.
let date = new Date();
alert( date ); // Wed Apr 22 2020 09:37:56 GMT+0900 (대한민국 표준시)
alert(+date); // 1587515876470 (date.getTime()과 같은 값)
(2) Date.now()
는 new Date().getTime()
과 의미론적으로 같고, Date객체를 만들지 않아 성능적으로 더 우수합니다.
(3) Date.parse(str)
문자열에서 날짜를 읽어올 수 있습니다. 문자열은 YYYY-MM-DDTHH:mm:ss.sssZ 형식이어야 합니다.
년-월-일|시간구분기호|시:분:초.밀리초|옵션(Z=UTC+0)
let date = new Date( Date.parse('2012-01-26T13:51:50.417-07:00') );
alert(date);
(4) 날짜 자동 고침 기능.
범위를 벗어나는 값을 쓸 경우, 날짜를 자동으로 고쳐줍니다.
// (1)
let date = new Date(2013, 0, 32); // 2013년 1월 32일은 없습니다.
alert(date); // 2013년 2월 1일이 출력됩니다.
// (2)
let date = new Date(2016, 0, 2); // 2016년 1월 2일
date.setDate(1); // 1일로 변경합니다.
alert( date );
date.setDate(0); // 일의 최솟값은 1이므로 0을 입력하면 전 달의 마지막 날을 설정한 것과 같은 효과를 봅니다.
alert( date ); // 31 Dec 2015