[JavaScript (11)] Javascript Date 객체, Date 메소드(getDate, getFullYear, getMonth 등)
- -
 
[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로부터 현재 시각의 초에 해당하는 숫자를 리턴 한다.
'2. 웹개발 > Javascript' 카테고리의 다른 글
당신이 좋아할만한 콘텐츠
소중한 공감 감사합니다