Codeit/JavaScript
Date 객체
효땡
2024. 8. 6. 13:46
Date 객체
// Date
let myDate = new Date();
console.log(myDate); // myDate만든 시간 -> Thu May 18 2017 00:00:00 GMT+0900 (대한민국 표준시)
- 원하는 날짜도 생성가능
new Date(특정한 값);
// new Date (milliseconds = 1/1000초)
let myDate = new Date(1000); // 1970년 1월 1일 00:00:00 UTC + 1000밀리초
// new Date('YYYY-MM-DD')
let myDate1 = new Date('2017-05-18');
console.log(myDate1); // Thu May 18 2017 00:00:00 GMT+0900 (대한민국 표준시)
// new Date('YYYY-MM-DDThh:mm:ss')
let myDate2 = new Date('2017-05-18T19:11:16');
console.log(myDate2); // Thu May 18 2017 19:11:16 GMT+0900 (대한민국 표준시)
new Date(값, 값, 값, ...);
- YYYY, MM은 필수사항
- 나머지는 생략가능하지만 1과 0으로 채움
new Date(YYYY, MM, DD, hh, mm, ss, ms);
new Date(YYYY, MM, 1, 0, 0, 0, 0);
- month는 0부터 시작 (ex. 0: 1월 / 11: 12월)
// new Date(year, month, date, hours, minutes, second, ms);
let myDate1 = new Date(2017, 4, 18, 19, 11, 16);
let myDate2 = new Date(2017, 4, 18, 19, 11);
let myDate3 = new Date(2017, 4, 18, 19);
let myDate4 = new Date(2017, 4, 18);
let myDate5 = new Date(2017, 4);
console.log(myDate1); // Thu May 18 2017 19:11:16 GMT+0900 (대한민국 표준시)
console.log(myDate2); // Thu May 18 2017 19:11:00 GMT+0900 (대한민국 표준시)
console.log(myDate3); // Thu May 18 2017 19:00:00 GMT+0900 (대한민국 표준시)
console.log(myDate4); // Thu May 18 2017 00:00:00 GMT+0900 (대한민국 표준시)
console.log(myDate5); // Thu May 01 2017 00:00:00 GMT+0900 (대한민국 표준시)
- 필요한 값만 따로 가져올 수 있음
get
- 1970년 1월 1일 00:00:00 UTC부터 몇 밀리초 지났는지 알 수 있음 -> 타입스탬프(time stamp)
- Day = 요일 (일요일부터 0 ~ 6까지)
// Date.getTime()
let myDate = new Date(2017, 4, 18, 19, 11, 16);
console.log(myDate.getFullYear()); // 2017 -> 2017년
console.log(myDate.getMonth()); // 4 -> 5월
console.log(myDate.getDate()); // 18 -> 18일
console.log(myDate.getDay()); // 4 -> 목요일
console.log(myDate.getHours()); // 19 -> 19시
console.log(myDate.getMinutes()); // 11 -> 11분
console.log(myDate.getSeconds()); // 16 -> 16초
console.log(myDate.getMilliseconds()); // 0
let today = new Date();
console.log(today.getDay()); // 5 -> 금요일
set
- set으로 시작하는 다양한 메소드를 활용하면, 생성된 Date객체의 정보를 수정할 수 있음
let myDate = new Date(2017, 4, 18, 19, 11, 16);
myDate.setFullYear(2022);
myDate.setMonth(6);
myDate.setDate(20);
실습
회사에서 가장 성실하기로 유명한 재상이는 지난 달에 이어 이번 달에도 이달의 우수사원으로 뽑혀 감회가 새롭습니다.
문득, 그동안 고생한 지난 날이 머릿속을 스쳐지나면서 자신이 입사한 지 얼마나 지났는지도 궁금해졌는데요. 오늘 날짜는 2112년 8월 24일이고, 재상이의 입사일은 2109년 7월 1일입니다. Date객체와 메소드를 활용해서 재상이가 입시한 지 며칠째인지를 계산해주는 workDayCalc함수를 완성해보세요.
(만약 8월 24일에 입사했고, 오늘이 8월 24일이면 0일이 아니라, '입사한 지 1일째'입니다.)
let today = new Date(2112, 7, 24);
let jaeSangStart = new Date(2109, 6, 1);
function workDayCalc(startDate) {
let timeDifferent = today.getTime() - startDate.getTime();
let dayDifferent = timeDifferent / 1000 / 60 / 60 / 24;
console.log(`오늘은 입사한 지 ${dayDifferent + 1}일째 되는 날 입니다.`);
}
workDayCalc(jaeSangStart);
실습 결과
오늘은 입사한 지 1151일째 되는 날 입니다.