[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' 카테고리의 다른 글
당신이 좋아할만한 콘텐츠
소중한 공감 감사합니다