Date 메소드
저번 글에서는 Date 객체의 생성 방법에 대해서 알아보았다. 이번 글에서는 Date가 가지고 있는 여러 메소드들에 대해서 살펴보겠다.
[자바스크립트] Date 객체 생성
Date 자바스크립트에서는 Date객체를 사용하여 시간과 날짜에 관한 정보를 손쉽게 얻고 다룰 수있다. Date 객체는 연, 월, 일, 시, 분, 초에 대한 정보를 제공하고 밀리초의 정도도 제공한다. 자바스
codingralro.tistory.com
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 |