본문 바로가기
JavaScript & JQuery

[JavaScript] 현재 날짜, 특정 날짜 - Date()

by 무사뎀벨레 2023. 1. 6.

 

 

자바스크립트의 Date 객체를 사용하여
현재 날짜를 구할 수 있고, 특정 날짜를 구할 수 있습니다.

 

 

 

 

 

 

 

Date()


Date 객체는 생성자 함수이며, 날짜와 시간을 가지는 인스턴스를 생성합니다.

생성된 인스턴스는 기본적으로 현재 날짜와 시간을 나타내는 값을 가집니다.

 

현재 날짜와 시간이 아닌 특정 날짜와 시간을 다루고 싶은 경우,

Date 생성자 함수에 명시적으로 특정 날짜와 시간 정보를 매개변수로 지정합니다.

 

 

 

 

 

 

 

 

Date() 사용 방법


1. 현재 시간

new Date(); 를 이용하여 Date 객체를 생성합니다.

var date1 = new Date(); // 현재 날짜 및 시간, Fri Jan 06 2023 16:24:15 GMT+0900 (한국 표준시)

 

 

2. 특정 시간

new Date(매개변수); 의 형태로, 생성한 Date 객체에 특정 시간에 대한 값을 매개변수로 전달합니다.

var date1 = new Date(2023,00,06,16,20); 	// Fri Jan 06 2023 16:20:00 GMT+0900 (한국 표준시)
var date1_2 = new Date(2023,01,06,16,20); 	// Mon Feb 06 2023 16:20:00 GMT+0900 (한국 표준시)
var date2 = new Date('2023-0-6'); 		// Fri Jan 06 2023 00:00:00 GMT+0900 (한국 표준시)
var date3 = new Date('2023-00-06 16:20:30'); 	// Fri Jan 06 2023 16:20:30 GMT+0900 (한국 표준시)

var date1 같은 경우를 보면, 2023년 다음 월 입력 부분이 00으로 되어있지만 결과는 1월로 출력이 됩니다.

var date1_1월 부분이 01로 입력이 되어있지만, 2월을 나타내는 Feb로 출력됩니다.

 

var date1 = new Date(2023,01,06,16,20,30); 		
var date2 = new Date('2023-01-06 16:20:30'); 	

console.log('date1 => ', date1); //date1 =>  Mon Feb 06 2023 16:20:30 GMT+0900 (한국 표준시)
console.log('date2 => ', date2); //date2 =>  Fri Jan 06 2023 16:20:30 GMT+0900 (한국 표준시)

이는 매개변수가 문자열이 아닌 경우 자바스크립트에서 월(month)을 나타낼 때는 1월이 0으로 표현되고, 12월이 11로 표현되기 때문입니다. (첫 번째 순서가 0부터 시작하기 때문)

 

 

 

3. 다양한 매개변수

뿐만 아니라 아래 코드와 같이 다양한 형식의 매개변수를 통해 특정 시간을 구할 수 있습니다.

'Jan 06, 2023 16:20:00'이나 '2023/01/06/16:20:00'와 같이 다양한 날짜와 시간에 관한 형식을 전달할 수 있습니다.

var date2 = new Date('Jan 06, 2023 16:20:00');
console.log(date); // Fri Jan 06 2023 16:20:00 GMT+0900 (한국 표준시)
 
var date2 = new Date('2023/01/06/16:20:00');
console.log(date2); // Fri Jan 06 2023 16:20:00 GMT+0900 (한국 표준시)

 

 

4. 필수적인 매개변수

매개변수를 이용하여 특정 날짜를 구한다면, 년도은 필수로 입력해야 합니다.

지정하지 않은 일, 시, 분, 초, 밀리초0 또는 1로 초기화됩니다.

var date = new Date(2023, 0);
console.log(date); // Sun Jan 01 2023 00:00:00 GMT+0900 (한국 표준시)
매개변수 내용
year 1900년 이후의 년
month 월을 나타내는 0 ~ 11까지의 정수 (주의: 0부터 시작, 0 = 1월)
day 일을 나타내는 1 ~ 31까지의 정수
hour 시를 나타내는 0 ~ 23까지의 정수
minute 분을 나타내는 0 ~ 59까지의 정수
second 초를 나타내는 0 ~ 59까지의 정수
millisecond 밀리초를 나타내는 0 ~ 999까지의 정수

 

 

 

 

 

 

 

Date() 내장 함수


Date객체가 내부적으로 가지고 있는 함수들이 있습니다.

 

 

Date.now

1970년 1월 1일 00:00:00(UTC)을 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환합니다.

 

 

Date.parse

var d = Date.parse('Jan 2, 1970 09:00:00'); 
console.log(d); // 86400000

1970년 1월 1일 00:00:00(UTC)을 기점으로 매개변수로 전달된 지정 시간까지의 밀리초를 숫자로 반환합니다.

매개변수는 new Date(dateString)의 매개변수와 동일한 형식으로 사용해야 합니다.

 

 

Date.UTC

var a = Date.UTC(1970, 0, 2);
console.log(a); // 86400000
 
var b = Date.UTC('1970/1/2');
console.log(n); // NaN

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.prototype.getFullYear / Date.prototype.setFullYear

년도를 나타내는 4자리 숫자를 반환/설정할 수있습니다.

년도 이외에 월, 일도 설정도 가능합니다.

var today = new Date();
 
// 년도 지정
today.setFullYear(2023);
 
console.log(today); // Fri Jan 06 2023 17:02:17 GMT+0900 (한국 표준시)
console.log(today.getFullYear());  // 2023
 
// 년도 월 일 지정
today.setFullYear(1900, 0, 1);
 
console.log(today); // Mon Jan 01 1900 17:02:57 GMT+0827 (한국 표준시)
console.log(today.getFullYear());  // 1900

 

 

Date.prototype.getMonth / Date.prototype.setMonth

월을 나타내는 0 ~ 11의 정수를 반환/설정합니다.
이 또한 1월은 0, 12월은 11이며 월 이외에도 일자도 설정이 가능합니다.

var today = new Date();
 
// 월을 지정
today.setMonth(0); // 1월
 
console.log(today); // Fri Jan 06 2023 17:05:51 GMT+0900 (한국 표준시)
console.log(today.getMonth()); // 0
 
// 월/일을 지정
today.setMonth(4, 5); // 5월 5일
 
console.log(today); // Fri May 05 2023 17:06:47 GMT+0900 (한국 표준시)
console.log(today.getMonth()); // 4

 

 

Date.prototype.getDate / Date.prototype.setDate

날짜(1 ~ 31)를 나타내는 정수를 반환/설정합니다.

var today = new Date();
 
// 날짜 지정
today.setDate(3);
 
console.log(today); // Tue Jan 03 2023 17:08:30 GMT+0900 (한국 표준시)
console.log(today.getDate());  // 3

 

 

Date.prototype.getDay

date를 지정하면 자동으로 요일이 결정되기 때문setDay는 없습니다.

요일(0 ~ 6)를 나타내는 정수를 반환하며, 반환값은 아래와 같습니다.

요일 반환값
0
1
2
3
4
5
6

cf. 요일을 구하는 함수

 

[JavaScript] 요일 구하기

자바스크립트의 Date 객체를 사용하여 무슨 요일인지 알 수 있습니다. new Date(yyyy-MM-dd).getDay() 날짜의 요일은 new Date(yyyy-MM-dd).getDay() 함수를 통해 구할 수 있습니다. 자세한 사용방법은 다음과 같습

hajoung56.tistory.com

 

 

Date.prototype.getHours / Date.prototype.setHours

시간(0 ~ 23)를 나타내는 정수를 반환/설정할 수 있습니다. 시간 이외 분, 초, 밀리초 또한 설정이 가능합니다.

var today = new Date();
 
// 시간 지정
today.setHours(7);
 
console.log(today); // Fri Jan 06 2023 07:11:47 GMT+0900 (한국 표준시)
console.log(today.getHours()); // 7
 
// 시간/분/초/밀리초 지정
today.setHours(0, 0, 0, 0); // 00:00:00:00
 
console.log(today); // Fri Jan 06 2023 00:00:00 GMT+0900 (한국 표준시)
console.log(today.getHours()); // 0

 

 

Date.prototype.getMinutes / Date.prototype.setMinutes

분(0 ~ 59)를 나타내는 정수를 반환/설정할 수 있습니다. 분 이외 초, 밀리초 또한 설정할 수 있습니다.

var today = new Date();
 
// 분 지정
today.setMinutes(50);
 
console.log(today);   // Fri Jan 06 2023 17:50:02 GMT+0900 (한국 표준시)
console.log(today.getMinutes()); // 50
 
// 분/초/밀리초 지정
today.setMinutes(5, 10, 999); // HH:05:10:999
 
console.log(today);   // Fri Jan 06 2023 17:05:10 GMT+0900 (한국 표준시)
console.log(today.getMinutes()); // 5

 

 

Date.prototype.getSeconds / Date.prototype.setSeconds

초(0 ~ 59)를 나타내는 정수를 반환/설정할 수 있습니다. 초 이외 밀리초도 설정할 수 있습니다.

var today = new Date();
 
// 초 지정
today.setSeconds(30);
 
console.log(today);   // Fri Jan 06 2023 17:14:30 GMT+0900 (한국 표준시)
console.log(today.getSeconds()); // 30
 
// 초/밀리초 지정
today.setSeconds(10, 0); // HH:MM:10:000
 
console.log(today);   // Fri Jan 06 2023 17:14:10 GMT+0900 (한국 표준시)
console.log(today.getSeconds()); // 10

 

 

Date.prototype.getMilliseconds / Date.prototype.setMilliseconds

밀리초(0 ~ 999)를 나타내는 정수를 반환/설정할수있습니다.

var today = new Date();
 
// 밀리초 지정
today.setMilliseconds(123);
 
console.log(today); // Fri Jan 06 2023 17:15:10 GMT+0900 (한국 표준시)
console.log(today.getMilliseconds());    // 123

 

 

Date.prototype.getTime / Date.prototype.setTime

1970년 1월 1일 00:00:00(UTC)을 기점으로 현재 시간까지 경과된 밀리초를 반환/설정할 수 있습니다.

var 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); // Fri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
console.log(today.getTime());  // 86400000

 

 

Date.prototype.getTimezoneOffset

UTC와 지정 로케일(Locale) 시간과의 차이를 분단위로 반환합니다.

var today = new Date();
var x = today.getTimezoneOffset() / 60; // 분단위값을 60으로 나눈다
 
console.log(today); // Fri Jan 06 2023 17:17:31 GMT+0900 (한국 표준시)
console.log(x);     // -9

 

 

Date.prototype.toDateString

사람이 읽을 수 있는 형식의 문자열로 날짜를 반환합니다.

var d = new Date('2023/1/06/17:19');
 
console.log(d.toString());     // Fri Jan 06 2023 17:19:00 GMT+0900 (한국 표준시)
console.log(d.toDateString()); // Fri Jan 06 2023

 

 

Date.prototype.toTimeString

사람이 읽을 수 있는 형식의 문자열로 시간을 반환합니다.

var d = new Date('2023/1/06/17:20');
 
console.log(d.toString());     // Fri Jan 06 2023 17:20:00 GMT+0900 (한국 표준시)
console.log(d.toTimeString()); // 17:20:00 GMT+0900 (한국 표준시)
반응형

댓글