본문 바로가기
Programming/자바스크립트

[자바스크립트] Date 메소드

by 코딩하는 랄로 2023. 10. 28.
728x90

Date 메소드

저번 글에서는 Date 객체의 생성 방법에 대해서 알아보았다. 이번 글에서는 Date가 가지고 있는 여러 메소드들에 대해서 살펴보겠다.

 

https://codingralro.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-Date-%EA%B0%9D%EC%B2%B4-%EC%83%9D%EC%84%B1

 

[자바스크립트] 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());
728x90