[JS] 모던 Javascript Deep Dive 30장 - Date
업데이트:
표준 빌트인 객체 Date는 날짜와 시간을 제공하는 빌트인 객체면서 생성자 함수이다.
[01] Date 생성자 함수
현재 날짜와 시간이 아닌 다른 날짜와 시간을 다루고 싶은 경우 Date 생성자 함수에 명시적으로 해당 날짜와 시간 정보를 인수로 지정해야 한다.
Date 생성자 함수로 객체를 생성하는 방법이 4가지 있다.
new Date()
new 연산자와 함께 호출하면 현재 날짜와 시간을 가지는 Date 객체를 반환한다.
new 연산자 없이 호출하면 날짜와 시간 정보를 나타내는 문자열을 반환한다.
new Date(); // Thu Oct 06 2022 13:31:08 GMT+0900 (한국 표준시)
Date(); // 'Thu Oct 06 2022 13:32:10 GMT+0900 (한국 표준시)'
new Date(milliseconds)
UTC를 기점으로 경과한 날짜와 시간을 반환(UTC는 협정 세계시)
new Date(0); // Thu Jan 01 1970 09:00:00 GMT+0900 (한국 표준시)
new Date(dateString)
new Date('September 9, 1998 05:30:00'); // Wed Sep 09 1998 05:30:00 GMT+0900 (한국 표준시)
지정한 날짜를 인수로 전달하면 지정된 날짜와 시간을 나타내는 Date 객체를 반환한다.
new Date(year,month[,day,hour,minute,second,millisecond])
new Date(2022, 1); // Tue Feb 01 2022 00:00:00 GMT+0900 (한국 표준시)
// 1인데 2월이 나오는 이유 : 0부터 시작하기 때문
new Date('2020/3/25/10:00:00:00'); //Wed Mar 25 2020 10:00:00 GMT+0900 (한국 표준시)
// 주로 이렇게 표현한다.
[02] Date 메서드
Date.now - 현재 시간
const now = Date.now(); // 1593971539112
//UTC를 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환
Date.parse
Date.parse('Jan 2, 1970 00:00:00 UTC'); //86400000
//UTC 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환
Date.UTC
Date.UTC(1970,0,2); // 86400000
// 문자열이 아닌 인수로 전달해야한다.
Date.prototype.getFullYear / setFullYear - 연도 반환
new Date('2020/07/24').getFullYear(); // 2020
// 전달한 연도를 반환
const today = new Date();
today.setFullYear(2000); // 임의로 연도를 설정
today.getFullYear(); // 2000
// 설정된 연도가 반환
Date.prototype.getMonth / setMonth - 월 반환
new Date('2020/08/24').getMonth(); // 7
// 월은 0부터 시작하므로 실제 활용할 때는 꼭 1을 더해주어야한다.
const today = new Date();
today.setMonth(0); // 1월로 설정
today.getMonth(); // 0
// 월/일을 지정
today.setMonth(11, 1); // 12월 1일
month = today.getMonth();
console.log(today); // Sun Dec 01 2019 17:45:20 GMT+0900 (한국 표준시)
console.log(month); // 11
Date.prototype.getDate / setDate - 날짜 반환
const today = new Date();
const date = today.getDate();
console.log(today); // Thu Oct 06 2022 14:40:13 GMT+0900 (한국 표준시)
console.log(date); // 6
const today = new Date();
// 날짜 지정
today.setDate(1);
const date = today.getDate();
console.log(today); // Sat Oct 01 2022 14:40:13 GMT+0900 (한국 표준시)
console.log(date); // 1
Date.prototype.getDay - 요일 반환
일요일(0)~토요일(6) 으로 요일을 정수로 반환한다.
new Date(`2022/09/15`).getDay() // 4 a(목요일)
Date.prototype.getHours / setHours - 시간 반환
const today = new Date();
today.setHours(7);
today.getHours(); // 7
Date.prototype.getMinutes / setMinutes - 분 반환
Date.prototype.getMinutes / setMinutes - 초 반환
Date.prototype.getMillisecods / setMilliseconds - 밀리초 반환
위 시간 반환 방식과 동일하게 사용하면 된다.
Date.prototype.getTime / setTime - UTC 기점으로 밀리초 반환
new Date('2020/07/24/12:30').getTime(); // 15955614000
const today = new Date();
today.setTime(86400000); //8640000은 하루를 나타냄
Date.prototype.toDateString - 날짜를 반환
사람이 읽을 수 있는 형식의 문자열로 Date 객체의 날짜를 반환한다.
const today = new Date('2022/10/7/16:08');
today.toString(); //'Fri Oct 07 2022 16:08:00 GMT+0900 (한국 표준시)'
today.toDateString(); // 'Fri Oct 07 2022'
Date.prototype.toTimeString - 시간을 반환
const today = new Date('2022/10/7/16:15');
today.toTimeString(); // 16:15:00 GMT+0900 (대한민국 표준시)
맺음말
Date 객체를 잘 활용하면 캘린더, 디데이 어플, 일정 관리 어플 등 재밌는 것들을 많이 만들어볼 수 있을 것 같다. 나중에 기회가 된다면 만들어봐야겠다 !
댓글남기기