JavaScript_Date객체

🙋🏻‍♀️·2022년 4월 9일
0

내장 객체(Standard built-in Objects) :자바스크립트가 미리 가지고 있는 객체

✔️Date객체 : 날짜

let myDate = new Date();

console.log(myDate);
//
2022-04-09T02:58:53.024Z 객체를 생성한 순간의 시간이 출력됨

🔹new Date(특정한 값); // 우리가 원하는 날짜를 생성할 수도 있다.

new Date(milliseconds)

let myDate =  new Date(1000); 
// UTC기준 1970년 1월 1일 0시 0분 0초에서 
넣어준 숫자값의 밀리초만큼 지난 객체가 만들어짐. 1000밀리초=1초

밀리초의 단위가 너무 미세해서 숫자열 말고 문자열 넣어주는 방식도 있음.
날짜로 해석이 가능한 문자열을 넣어주면 해당 날짜의 객체를 만들 수 있다.


🔹new Date('YYYY-MM-DD')

let myDate = new Date('2017-05-18')

//만약에 좀 더 자세하게 시간까지 다루고 싶으면 알파벳 T를 입력하고 24시간 형태로 시간대를 작성

new Date('YYYY-MM-DDThh:mm:ss')
let myDate2 = new Date('2017-05-18T19:11:16'); //오후 7시 11분 16초 작성한거

console.log(myDate);
console.log(myDate2);

//2017-05-18T00:00:00.000Z
//2017-05-18T19:11:16.000Z  출력.

new Date(값, 값, 값 ...); --> 소괄호 안에 여러 개의 값을 전달해 주는 방식.
new Date(YYYY, MM, DD, hh, mm, ss, ms); -->연도,월,일,시,분,초,밀리초 순서대로 입력.
❗❗❗년도와 월까지는 필수❗❗❗ 나머지는 생략이 가능.
생략할 경우에는 new Date(YYYY, MM, 1, 0, 0, 0, 0);로 처리가 됨.


❗❗주의해야 할 점은 ⭐month의 경우만 시작 숫자가 0임.
우리가 일반적으로 생각하는 1월은 컴퓨터에게 0월이라는 점 꼭 기억하기!




✔️getTime메소드

: Date 객체의 기준 날짜인 1970년 1월1일0시0분0초에 맞춰서 몇 밀리초가
지났는지 계산해줌. 이 정숫값을 '타임스탬프'라고 부름.


let today = new Date ();

console.log(today.getDay());
//6출력. 토요일이라는 뜻



✍️Date 객체 정보 수정하기

set으로 시작하는 다양한 메서드를 활용하면, 생성된 Date객체의 정보를 수정할 수도 있습니다.

(대괄호로 감싸진 요소들은 선택적인 요소입니다.)

setFullYear(year, [month], [date])
setMonth(month, [date])
setDate(date)
setHours(hour, [min], [sec], [ms])
setMinutes(min, [sec], [ms])
setSeconds(sec, [ms])
setMilliseconds(ms)
setTime(milliseconds)(1970년 1월 1일 00:00:00 UTC부터 밀리초 이후를 나타내는 날짜를 설정)


✍️간단하게 시간 정보 알아내기!
간단하게 시간 정보를 표현하고 싶다면 아레와 같은 메소드를 활용해 볼 수도 있습니다.

let myDate = new Date();

console.log(myDate.toLocaleDateString()); // myDate가 가진 날짜에 대한 정보 (년. 월. 일)
console.log(myDate.toLocaleTimeString()); // myDate가 가진 시간에 대한 정보 (시:분:초)
console.log(myDate.toLocaleString()); // myDate가 가진 날짜와 시간에 대한 정보 (년. 월. 일 시:분:초)

//
"2022. 4. 9."
"오후 1:39:23"
"2022. 4. 9. 오후 1:39:23"

✍️똑똑한 Date?!
Date 객체엔 자동으로 날짜를 수정해주는 유용한 기능이 있습니다.
범위를 벗어나는 값을 설정하려고 하면 자동으로 날짜를 수정해줍니다.

let myDate = new Date(1988, 0, 32); // 1988년 1월 32일은 없습니다

// 2월 1일로 자동고침 되는걸 확인할 수 있습니다.
console.log(myDate) // Mon Feb 01 1988 00:00:00





✍️실습과제

회사에서 가장 성실하기로 유명한 재상이는 지난달에 이어 이번 달에도 이달의 우수사원으로 뽑혀 감회가 새롭습니다.

문득, 그동안 고생한 지난날이 머릿속을 스쳐지나면서 자신이 입사한 지 얼마나 지났는지도 궁금해졌는데요. 오늘은 날짜는 2112년 8월 24일이고, 재상이의 입사일은 2109년 7월 1일입니다. Date객체와 메소드를 활용해서 재상이가 입사한 지 며칠째인지를 계산해주는 workDayCalc 함수를 완성해 주세요.

(만약 8월 24일에 입사했고, 오늘이 8월 24일이면 0일이 아니라, '입사한 지 1일째'입니다.)

코드를 잘 작성하셨다면 다음과 같은 결과가 출력되어야 합니다.

// 오늘은 입사한 지 1151일째 되는 날 입니다.


let today = new Date(2112, 8, 24);
let jaeSangStart = new Date(2109, 7, 1);

//(1)오늘 날짜와 재상의 입사일간의 차이를 먼저 구해서 변수에 담아주기

function workDayCalc(startDate) {
 let timeDiff = today.getTime() - startDate.getTime();

 //그리고 타임스탬프는 단위가 밀리초이기 때문에, 이 값을 일수로 바꿔줘야 됩니다. 
 //천천히 하나씩 생각해보면, 1000밀리초가 1초니깐, 일단 초단위로 바꾸려면 1000으로 나눠주면 되겠죠?
 //그리고 60초가 1분, 60분이 1시간, 그리고 24시간이 하루가 되니깐
 //다음과 같이 작성하면 타임스탬프 값을 하루 단위로 계산할 수 있습니다.

 let dayDiff = timeDiff / 1000 / 60 / 60 / 24;

 //마지막으로 템플릿 문자열을 활용해서 dayDiff를 출력예시에 맞게 작성하면 됩니다.

 //그런데 주의해야될 부분은 dayDiff는 두 날짜간의 차이 값이기 때문에, 
 //며칠째 인지를 계산하려면 당일 날짜를 하나 더 더해줘야 합니다.

 console.log(`오늘은 입사한 지 ${dayDiff + 1}일째 되는 날 입니다.`)
}

workDayCalc(jaeSangStart);
//오늘은 입사한 지 1151일째 되는 날 입니다.




0개의 댓글