본문으로 바로가기
반응형

[JavaScript (11)] Javascript Date 객체, Date 메소드(getDate, getFullYear, getMonth 등)

안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 자바스크립트 객체 - Date 입니다. : ) 

 

0. Javascript에서의 날짜 표현

 

 - 날짜와 시간(년, 월, 일, 시, 분, 초, 밀리초)을 위한 메소드를 제공하는 빌트인 객체, 생성자 함수 이다.
 - 하루는 86,400,000 밀리초(millisecond)로 계산 한다.

※ 참고
ㆍUTC(Universal Time, Coordinated(협정 세계시))
 - 세슘 원자 진동수의 기반의 표준시간
 - 오차가 30만 년에 1초라고 할 정도로 아주 정확하고 기준이 될 수 있는 시간 이라고 한다.

ㆍGMT(Greenwich Mean Time,(영국 그리니치 평균시))
 - 영국 그리니치의 천문대 기준의 표준시간
 - 1925년부터 1972년까지 세계의 표준 시간으로 사용 하였다. 요즘은 오차가 적은 UTC 사용.

결국 오차가 적은 UTC를 사용하고, 우리나라 표준 시간(KST : Korea Standard Time)은 이들에 9시간을 더한 시간이다.

UTC와 GMT는 초의 소숫점 단위에서만 차이가 나기때문에 흔히 혼용하여 사용한다.

 

1. Date 객체

▶ 1. Date 생성 방법

① new Date()
 - 아무런 인수를 전달하지 않으면 현재 날짜와 시간을 가지는 인스턴스를 리턴한다.
ex)

var now = new Date(); 
console.log(now);


② new Date("날짜를 나타내는 문자열")
 - 인수로 날짜(시간)를 나타내는 문자열을 전달하면 지정된 날짜와 시간을 나타내는 인스턴스를 리턴한다.
 - 인수는 Date.parse 메소드에 의해 파싱 가능한 형식 이어야 한다.


③ new Date(milliseconds)
 - 1970년 1월 1일 00:00시(UTC, 협정세계시) 부터 해당 milliseconds만큼 지난 날짜 리턴.


④ new Date(년, 월[, 일, 시, 분, 초, 밀리초])
 - 인수로 년, 월[, 일, 시, 분, 초, 밀리초]를 전달하면 지정된 날짜를 리턴한다.
 - 년, 월 : 필수값, 나머진 0 또는 1로 초기화

※ 이외 Date 생성시 사용 가능한 날짜 양식들
① ISO 날짜 양식
 - ISO 8601
 - 날짜와 시간을 표현하는 국제 표준 양식

 - YYYY-MM-DDTHH:MM:SS // T는 UTC(협정세계시)를 나타내는 문자
 - YYYY-MM-DD
 - YYYY-MM
 - YYYY
ex)

new Date("2020-03-26T13:30:00"); 	// Thu Mar 26 2020 13:30:00 GMT+0900 (대한민국 표준시)
new Date("2020-03-26UTC13:30:00"); 	// Thu Mar 26 2020 22:30:00 GMT+0900 (대한민국 표준시)
new Date("2020-03-26GMT13:30:00"); 	// Thu Mar 26 2020 22:30:00 GMT+0900 (대한민국 표준시)
new Date("2020-03-26");          	// 시간이 생략되면 자동으로 09:00:00으로 설정됨.
new Date("2020-03");             	// 일이 생략되면 자동으로 1일로 설정됨.
new Date("2020");                	// 월이 생략되면 자동으로 1월로 설정됨.

 

② Long 날짜 양식
 - MMM DD YYYY
 - DD MMM YYYY
ex)

new Date("Mar/26/2020");
new Date("Mar-26-2020");
new Date("26 Mar 2020");
new Date("26 March 2020");
new Date("26 MARCH 2020");

 

③ Short 날짜 양식
 - MM DD YYYY
 - YYYY MM DD
ex)

new Date("03/26/2020");
new Date("03-26-2020");
new Date("26 03 2020"); // Invalid Date
new Date("03 26 2020");

 

④ Full 날짜 양식
 - javascript에서 사용하는 날짜 양식으로 표현된 문자열도 인수로 전달 가능하다.
 - Date.parse 메소드에 의해 해석 가능 하기 때문.
 
ex)

new Date("Thu Mar 26 2020 13:30:00 GMT+0900 (대한민국 표준시)"); 

▶ 2. Date 메소드

 - 다음의 많은 Date 메소드 중 자주 사용될만한 메서드들 위주로 살펴보자.

 

1) Date.now() 
 - 1970년 1월 1일 00:00:00(UTC)부터 현재까지의 시간을 millisecond 단위 정수로 리턴한다.
ex) 

console.log(Date.now());    			// 1585224100127
console.log(new Date(1585224100127)); 	// Thu Mar 26 2020 21:01:40 GMT+0900 (대한민국 표준시)

 

2) Date.parse()
 - 1970년 1월 1일 00:00:00(UTC)부터 인수로 전달된 시간 까지를 millisecond 단위 정수로 리턴한다.
ex)

console.log(Date.parse("2020-03-26UTC13:30:00")); // 1585229400000 
console.log(Date.parse("2020-03-26 13:30:00")); // 1585197000000 
console.log(Date.parse("2020/03/26 22:30:00")); // 1585229400000

▶ 3. Date.prototype 메소드

 - Date 인스턴스는 Date.prototype으로부터 메소드와 프로퍼티를 상속 받는다.

1) Date.prototype.getFullYear
 - 현재 연도를 4비트의 숫자(YYYY)로 리턴한다.
 - 연도(year) 표현 : 1900년(00) ~ 1999년(99), 2000년(100) ~ 
ex)

var date = new Date(); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
var yyyy = date.getFullYear(); // 2020 
var yyy = date.getYear(); // 120, 다음과 같은 결과가 나온다. 그래서 get Year는 잘 사용하지 않는다. 


2) Date.prototype.setFullYear
 - 연도를 4비트의 숫자(YYYY)로 세팅한다.
 - 문법 : dateObj.setFullYear(year[, month[, day]])

ex)

var date = new Date(); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
date.setFullYear(2021); // Thu Mar 26 2021 21:11:22 GMT+0900 (대한민국 표준시) 
date.setFullYear(2020, 0); // Sun Jan 26 2021 21:11:22 GMT+0900 (대한민국 표준시) 
date.setFullYear(2020, 0, 1); // Wed Jan 01 2021 21:11:22 GMT+0900 (대한민국 표준시) 


3) Date.prototype.getMonth
 - 월(month) 표현 : 1월(0) ~ 12월(11)
 - 현재 월을 정수로 반환 한다.
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.getMonth()); // 2 


4) Date.prototype.setMonth
 - 월(month) 표현 : 1월(0) ~ 12월(11)
 - 월을 정수로 설정한다.
 - 문법 : dateObj.setMonth(month[, day])
ex)

var date = new Date(); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
date.setMonth(4); // 5월 
console.log(date); // Fri May 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
date.setMonth(4, 1); // 5월 1일 
console.log(date); // Fri May 1 2020 21:11:22 GMT+0900 (대한민국 표준시) 


5) Date.prototype.getDate
 - 날짜 표현 : 1일(1) ~ 31일(31)
 - 날짜를 정수로 반환 한다. 월과 다르게 1일은 1로 반환 한다.
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.getDate()); // 26 


6) Date.prototype.setDate
 - 날짜 표현 : 1일(1) ~ 31일(31)
 - 날짜를 정수로 설정한다.
 - 문법 : dateObj.setDate(day)
ex)

var date = new Date(); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
date.setDate(1); // 1일 
console.log(date); // Sun Mar 01 2020 13:36:31 GMT+0900 (대한민국 표준시)


7) Date.prototype.getDay
 - 요일 표현 : 일요일(0) ~ 토요일(6)
 - 요일을 정수로 반환 한다.
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.getDay()); // 4

 
8) Date.prototype.setDay => 해당 메소드는 존재 하지 않는다.

9) Date.prototype.getHours
 - 시간 표현 : 0~23
 - 시간을 정수로 반환 한다.
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.getHours()); // 21


10) Date.prototype.setHours
 - 시간 표현 : 0~23
 - 시간을 정수로 설정 한다.
 - 문법 : dateObj.setHours(hour[, minute[, second[, ms]]])
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.setHours(20)); // 20 


11) Date.prototype.getMinutes
 - 분 표현 : 0~59
 - 분을 정수로 반환 한다.
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.getMinutes()); // 11

 
12) Date.prototype.setMinutes
 - 분 표현 : 0~59
 - 분을 정수로 설정 한다.
 - 문법 : dateObj.setMinutes(minute[, second[, ms]])
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.setMinutes(20)); // 20

 
13) Date.prototype.getSeconds
 - 초 표현 : 0~59
 - 초를 정수로 반환 한다.
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.getSeconds()); // 22

 
14) Date.prototype.setSeconds
 - 초 표현 : 0~59
 - 초를 정수로 설정 한다.
 - 문법 : dateObj.setSeconds(second[, ms])
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.setSeconds(20)); // 20

 
15) Date.prototype.getMilliseconds
 - 밀리초 표현 : 0~999
 - 밀리초를 정수로 반환 한다.
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.getMilliseconds()); // 111


16) Date.prototype.setMilliseconds
 - 밀리초 표현 : 0~999
 - 밀리초를 정수로 설정 한다.
 - 문법 : dateObj.setMilliseconds(ms)
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.setMilliseconds(999)); // 999

 
16) Date.prototype.getTime
 - 1970년 1월 1일 0시 0분 0초부터 현재까지의 시간을 밀리초 단위로 환산한 값을 숫자로 리턴 한다.
ex)

var date = new Date(); 

console.log(date); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.getTime()); // 1585224682000

 
17) Date.prototype.setTime
 - 1970년 1월 1일 0시 0분 0초부터 현재까지 지난 시간을 밀리초 단위로 설정한다.
 - 문법 : dateObj.setTime(ms)
ex)

var date = new Date(); 

// 1970년 1월 1일 0시 0분 0초부터 현재까지 지난 시간을 밀리초 단위로 설정 
console.log(date.setTime(86400000 * 30));
// 86400000(1일) * 30 => Sat Jan 31 1970 09:00:00 GMT+0900 (대한민국 표준시)

 
18) 날짜를 문자열로 반환
 - Date.prototype.toDateString
 - Date.prototype.toTimeString
 - Date.prototype.toString

ex)

var date = new Date("Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)"); 
console.log(date.toDateString()); // Thu Mar 26 2020 
console.log(date.toTimeString()); // 21:11:22 GMT+0900 (대한민국 표준시) 
console.log(date.toString()); // Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)


※ 이외 메소드
 - getTimezoneOffset() : UTC로부터 현재 시각까지의 시간차를 분 단위로 환산한 값을 숫자로 리턴 한다.
 - getUTCDay() : UTC로부터 현재 요일에 해당하는 숫자를 리턴 한다.

 

※ set 메소드는 get의 반대로 설정 처리
 - getUTCDate(), setUTCDate() : UTC로부터 현재 일자에 해당하는 숫자를 리턴 한다.
 - getUTCMonth(), setUTCMonth() : UTC로부터 현재 월에 해당하는 숫자를 리턴 한다.
 - getUTCFullYear(), setUTCFullYear() : UTC로부터 현재 연도를 4비트의 숫자(YYYY)로 리턴 한다.
 - getUTCHours(), setUTCHours() : UTC로부터 현재 시각에 해당하는 숫자를 리턴 한다.
 - getUTCMilliseconds(), setUTCMilliseconds() : UTC로부터 현재 시각의 밀리초에 해당하는 숫자를 리턴 한다.
 - getUTCMinutes(), setUTCMinutes() : UTC로부터 현재 시각의 분에 해당하는 숫자를 리턴 한다.
 - getUTCSeconds(), setUTCSeconds() : UTC로부터 현재 시각의 초에 해당하는 숫자를 리턴 한다.

반응형

댓글을 달아 주세요