Date 메소드
저번 글에서는 Date 객체의 생성 방법에 대해서 알아보았다. 이번 글에서는 Date가 가지고 있는 여러 메소드들에 대해서 살펴보겠다.
Date.now()
1970년 1월 1일 00:00:00(UTC)을 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환한다.
// Date.now()
console.log(Date.now()) //1698418137947
Date.parse(stringDate)
1970년 1월 1일 00:00:00(UTC)을 기점으로 인수로 전달된 지정 시간(new Date(dateString)의 인수와 동일한 형식)까지의 밀리초를 숫자로 반환한다.
// Date.parse(stringDate)
let d = Date.parse('Jan 2, 1970 00:00:00 UTC'); // UTC
console.log(d); // 86400000
d = Date.parse('Jan 2, 1970 09:00:00'); // KST
console.log(d); // 86400000
d = Date.parse('1970/01/02/09:00:00'); // KST
console.log(d); // 86400000
Date.UTC( year, month, [ day, hour, minute, second, millisecond] )
1970년 1월 1일 00:00:00(UTC)을 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환한다. Date.UTC 메소드는 new Date(year, month[, day, hour, minute, second, millisecond])와 같은 형식의 인수를 사용해야 한다. Date.UTC 메소드의 인수는 local time(KST)가 아닌 UTC로 인식된다.
// Date.UTC( year, month, [ day, hour, minute, second, millisecond] )
let d = Date.UTC(1970, 0, 2);
console.log(d); // 86400000
d = Date.UTC(2023)
console.log(d); // 1672531200000
d = Date.UTC('1970/1/2');
console.log(d); // NaN
Date.prototype.getFullYear / Date.prototype.setFullYear
년도를 나타내는 4자리 숫자를 반환/설정한다. 년도 이외에 월, 일도 설정 가능하다.
// Date.prototype.getFullYear / Date.prototype.setFullYear
const today = new Date();
// 년도 지정
today.setFullYear(2000);
console.log(today); // Sat Oct 28 2000 01:05:30 GMT+0900 (대한민국 표준시)
console.log(today.getFullYear()); // 2000
// 년도 월 일 지정
today.setFullYear(1900, 0, 1);
console.log(today); // Mon Jan 01 1900 01:05:30 GMT+0827 (대한민국 표준시)
console.log(today.getFullYear()); // 1900
Date.prototype.getMonth /Date.prototype.setMonth
월을 나타내는 0 ~ 11의 정수를 반환/설정한다. 1월은 0, 12월은 11이다. 월 이외에도 일도 설정 가능하다.
// Date.prototype.getMonth /Date.prototype.setMonth
const today = new Date();
// 월을 지정
today.setMonth(0); // 1월
console.log(today.toString()); // Sat Jan 28 2023 01:08:06 GMT+0900 (대한민국 표준시)
console.log(today.getMonth()); // 0
// 월/일을 지정
today.setMonth(11, 1); // 12월 1일
console.log(today.toString()); // Fri Dec 01 2023 01:08:06 GMT+0900 (대한민국 표준시)
console.log(today.getMonth()); // 11
Date.prototype.getDate /Date.prototype.setDate
날짜(1 ~ 31)를 나타내는 정수를 반환/설정한다.
// Date.prototype.getDate /Date.prototype.setDate
const today = new Date();
// 날짜 지정
today.setDate(1);
console.log(today.toString()); // Sun Oct 01 2023 01:10:06 GMT+0900 (대한민국 표준시)
console.log(today.getDate()); // 1
Date.prototype.getDay
요일(0 ~ 6)를 나타내는 정수를 반환한다. 반환값은 아래와 같다. setDay는 없다. 요일을 지정하는건 의미없다. date를 지정하면 자동으로 요일이 결정되기 때문이다. 0은 일요일이고, 6은 토요일이다.
Date.prototype.getHours / Date.prototype.setHours
시간(0 ~ 23)를 나타내는 정수를 반환/설정한다. 시간 이외 분, 초, 밀리초도 설정할 수 있다.
const today = new Date();
// 시간 지정
today.setHours(7);
console.log(today.toString()); // Sat Oct 28 2023 07:12:55 GMT+0900 (대한민국 표준시)
console.log(today.getHours()); // 7
// 시간/분/초/밀리초 지정
today.setHours(0, 0, 0, 0); // 00:00:00:00
console.log(today.toString()); // Sat Oct 28 2023 00:00:00 GMT+0900 (대한민국 표준시)
console.log(today.getHours()); // 0
Date.prototype.getMinutes / Date.prototype.setMinutes
분(0 ~ 59)를 나타내는 정수를 반환/설정한다. 분 이외 초, 밀리초도 설정할 수 있다.
// Date.prototype.getMinutes / Date.prototype.setMinutes
const today = new Date();
// 분 지정
today.setMinutes(50);
console.log(today.toString()); // Sat Oct 28 2023 01:50:32 GMT+0900 (대한민국 표준시)
console.log(today.getMinutes()); // 50
// 분/초/밀리초 지정
today.setMinutes(5, 10, 999); // HH:05:10:999
console.log(today.toString()); // Sat Oct 28 2023 01:05:10 GMT+0900 (대한민국 표준시)
console.log(today.getMinutes()); // 5
Date.prototype.getSeconds / Date.prototype.setSeconds
초(0 ~ 59)를 나타내는 정수를 반환/설정한다. 초 이외 밀리초도 설정할 수 있다.
// Date.prototype.getSeconds / Date.prototype.setSeconds
const today = new Date();
// 초 지정
today.setSeconds(30);
console.log(today.toString()); // Sat Oct 28 2023 01:15:30 GMT+0900 (대한민국 표준시)
console.log(today.getSeconds()); // 30
// 초/밀리초 지정
today.setSeconds(10, 0); // HH:MM:10:000
console.log(today.toString()); // Sat Oct 28 2023 01:15:10 GMT+0900 (대한민국 표준시)
console.log(today.getSeconds()); // 10
Date.prototype.getMilliseconds / Date.prototype.setMilliseconds
밀리초(0 ~ 999)를 나타내는 정수를 반환/설정한다.
// Date.prototype.getMilliseconds / Date.prototype.setMilliseconds
const today = new Date();
// 밀리초 지정
today.setMilliseconds(123);
console.log(today.toString()); // Sat Oct 28 2023 01:17:05 GMT+0900 (대한민국 표준시)
console.log(today.getMilliseconds()); // 123
Date.prototype.getTime / Date.prototype.setTime
1970년 1월 1일 00:00:00(UTC)를 기점으로 현재 시간까지 경과된 밀리초를 반환/설정한다. 위에서 배운, Date.parse(), Date.UTC의 함축 버젼이라고 보면 된다.
// Date.prototype.getTime / Date.prototype.setTime
const today = new Date(); // Fri Jan 01 1970 09:00:00 GMT+0900 (한국 표준시)
// 1970년 1월 1일 00:00:00(UTC)를 기점으로 현재 시간까지 경과된 밀리초 지정
today.setTime(86400000); // 86400000 === 1day
console.log(today.toString()); // Fri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
console.log(today.getTime()); // 86400000
Date.prototype.getTimezoneOffset
UTC와 지정 로케일(Locale) 시간과의 차이를 분단위로 반환한다. KST(Korea Standard Time)는 UTC에 9시간을 더한 시간이다. 즉, UTC = KST - 9h이다.
// Date.prototype.getTimezoneOffset
const today = new Date();
const x = today.getTimezoneOffset() / 60; // 분단위값을 60으로 나눈다
console.log(today.toString()); // Sat Oct 28 2023 01:21:14 GMT+0900 (대한민국 표준시)
console.log(x); // -9
Date.prototype.toDateString
사람이 읽을 수 있는 형식의 문자열로 날짜를 반환한다.
// Date.prototype.toDateString
const d = new Date('2023/10/28/01:30');
console.log(d.toString()); // Sat Oct 28 2023 01:30:00 GMT+0900 (대한민국 표준시)
console.log(d.toDateString()); // Sat Oct 28 2023
Date.prototype.toTimeString
사람이 읽을 수 있는 형식의 문자열로 시간을 반환한다.
// Date.prototype.toTimeString
const d = new Date('2023/10/28/18:30');
console.log(d.toString()); // Sat Oct 28 2023 18:30:00 GMT+0900 (대한민국 표준시)
console.log(d.toTimeString()); // 18:30:00 GMT+0900 (대한민국 표준시)
날짜 계산 방법 정리
// 날짜 계산 방법 정리
// 몇일 전, 후 날짜 계산
let now = new Date();;
console.log("현재 : ", now.toString());
let yesterday = new Date(now.setDate(now.getDate() - 1)); // 어제
console.log("어제 : ", yesterday.toString());
let tomorrow = new Date(now.setDate(now.getDate() + 1)); // 내일
console.log("내일 : ", tomorrow.toString());
// 몇달 전, 후 날짜 계산
now = new Date(); // 현재 날짜 및 시간
console.log("현재 : ", now.toString());
let oneMonthAgo = new Date(now.setMonth(now.getMonth() - 1)); // 한달 전
console.log("한달 전 : ", oneMonthAgo.toString());
let oneMonthLater = new Date(now.setMonth(now.getMonth() + 1)); // 한달 후
console.log("한달 후 : ", oneMonthLater.toString());
// 몇년 전, 후 날짜 계산
now = new Date(); // 현재 날짜 및 시간
console.log("현재 : ", now.toString());
let oneMonthAgo = new Date(now.setMonth(now.getMonth() - 1)); // 한달 전
console.log("한달 전 : ", oneMonthAgo.toString());
let oneMonthLater = new Date(now.setMonth(now.getMonth() + 1)); // 한달 후
console.log("한달 후 : ", oneMonthLater.toString());
'Programming > 자바스크립트' 카테고리의 다른 글
[자바스크립트] Method Chaining (0) | 2023.10.28 |
---|---|
[자바스크립트] 배열 - 메소드2 (1) | 2023.10.28 |
[자바스크립트] Date 객체 생성 (0) | 2023.10.27 |
[자바스크립트] 즉시 실행 함수(IIFE) (0) | 2023.10.27 |
[자바스크립트] 반복문 - For in / For of (0) | 2023.10.27 |