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일째 되는 날 입니다.