Math 빌트인 객체는 자바에서의 Date와 유사점이 많은데요.
다만 자바처럼 여러 Date 내장 객체가 있는건 아니기에 JS에서의 날짜 내장 객체는 Date가 대표적이라는 점만 알아두시면 될 듯 합니다. (물론 JS를 위한 여러 커스텀 라이브러리들 또한 존재합니다.)
아무튼 이러한 JS에서의 Date객체는 크게 getter와 setter 두 가지 메서드로 나누어져 있으며, 초반에 생성하는 방법은 다음과 같습니다.
// 매개변수를 넣지 않을 경우 컴퓨터 시스템 상의 시간대를 기준으로 현재 날짜와 시간이 생성됩니다. let date1 = new Date(); // 매개변수를 넣을 경우 연, 월, 일, 시, 분, 초로 넣습니다. (이 지정의 경우 월은 +1로 처리되기 때문에 사용시 주의가 필요합니다.) let date2 = new Date(2024, 1, 1, 12, 0, 0); // 문자열로 서식을 지정해서 넣어도 됩니다. let date3 = new Date('2024-01-01 12:00:00'); console.log(date1) console.log(date2) console.log(date3) // 현재 날짜 인스턴스를 ISO(국제 표준 시간) 기준으로 포맷팅함 console.log(date3.toISOString())
getter 메서드는 날짜 인스턴스의 특정 정보를 가져올 때 사용되며, 주로 DOM 요소에서 날짜를 출력할 때 사용합니다.
각각 연도, 월, 일, 요일의 번호를 가져올 때 사용되는 메서드이며, 각 메서드의 범위는 다음과 같습니다.
let date1 = new Date(); let y = date1.getFullYear(); let m = date1.getMonth() + 1; let d = date1.getDate(); let w = date1.getDay(); let week = ["일", "월", "화", "수", "목", "금", "토"] let resultDate = `${y}-${m}-${d}-${week[w]}`; console.log(resultDate);
각각 시, 분, 초, 밀리초를 가져오며, 주로 DOM 요소에서 즉각적으로 반영되는 시간 UI를 나타낼때 사용됩니다.
let date1 = new Date(); let h = date1.getHours(); let m = date1.getMinutes(); let s = date1.getSeconds(); let mm = date1.getMilliseconds(); let resultTime = `${h}:${m}:${s}:${mm}`; console.log(resultTime);
setter 메서드는 날짜 인스턴스의 특정 정보를 새로 지정할 때 사용됩니다.
각각 연도, 월, 일자를 세팅할 때 사용합니다.
// 현재 날짜 객체 생성 후 출력 let date1 = new Date(); let y = date1.getFullYear(); let m = date1.getMonth() + 1; let d = date1.getDate(); let resultDate = `${y}-${m}-${d}`; console.log(resultDate); // 특정 날짜로 세팅 후 출력 date1.setFullYear(2002); date1.setMonth(5) + 1; date1.setDate(18); y = date1.getFullYear(); m = date1.getMonth(); d = date1.getDate() resultDate = `${y}-${m}-${d}`; console.log(resultDate);
각각 생성된 날짜 인스턴스의 시, 분, 초, 밀리초를 세팅할때 사용합니다.
// 현재 날짜 객체 생성 후 시간 정보 출력 let date1 = new Date(); let h = date1.getHours(); let m = date1.getMinutes(); let s = date1.getSeconds(); let mm = date1.getMilliseconds(); let resultTime = `${h}:${m}:${s}:${mm}`; console.log(resultTime); // 특정 시간으로 세팅 후 시간 정보 출력 date1.setHours(18); date1.setMinutes(30); date1.setSeconds(59); date1.setMilliseconds(500); h = date1.getHours(); m = date1.getMinutes(); s = date1.getSeconds(); mm = date1.getMilliseconds(); resultTime = `${h}:${m}:${s}:${mm}`; console.log(resultTime);
getTime은 1970년 1월 1일 00:00:00 UTC (Unix epoch) 이후의 밀리초 수를 반환받는데 사용됩니다. 이러한 getTime메서드는 JS에서 굉장히 유용하게 사용되기 때문에 알아둬야할 필요가 있는데요. 기본적으로 특정 날차간의 차이를 계산하는데 사용되며, Counter나 D-Day 예제에 매우 유용하게 사용됩니다.
// 현재 날짜 객체 생성 후 밀리초로 환산 let date1 = new Date(); let mm = date1.getTime(); console.log(mm);
// 현재 날짜 let today = new Date(); // D-day로 설정할 날짜 let d_Day = new Date('2024-12-31 00:00:00'); // 현재 날짜와 D-day 사이의 밀리초의 차이를 계산 let differTime = d_Day.getTime() - today.getTime(); // 밀리초를 일(day) 단위로 변환 // 1일은 1000밀리초 * 60초 * 60분 * 24시간, 만약 월을 구하고 싶다면 여기에 *12를 곱하면 됨. let leftedDay = Math.ceil(differTime / (1000 * 60 * 60 * 24)); // 웹페이지에 표시 document.write(`D-day까지 남은 일수: ${leftedDay}일`);