-
[JavaScript] Date 객체Java script 2023. 12. 8. 15:56
Date 객체를 활용하면 생성 및 수정 시간을 저장하거나 시간을 측정할 수 있고, 현재 날짜를 출력하는 용도 등으로도 활용할 수 있다.
new Date()
인수 없이 호출하면 현재 날짜와 시간이 저장된 Date 객체가 반환
let now = new Date(); alert( now ); // 현재 날짜 및 시간이 출력됨
new Date(year, month, date, hours, minutes, seconds, ms)
주어진 인수를 조합해 만들 수 있는 날짜가 저장된 객체가 반환됩니다(지역 시간대 기준). 첫 번째와 두 번째 인수만 필수값이다.
- year는 반드시 네 자리 숫자여야 합니다. 2013은 괜찮고 98은 괜찮지 않다.
- month는 0(1월)부터 11(12월) 사이의 숫자여야 한다.
- date는 일을 나타내는데, 값이 없는 경우엔 1일로 처리된다.
- hours/minutes/seconds/ms에 값이 없는 경우엔 0으로 처리된다.
new Date(2011, 0, 1, 0, 0, 0, 0); // 2011년 1월 1일, 00시 00분 00초 new Date(2011, 0, 1); // hours를 비롯한 인수는 기본값이 0이므로 위와 동일
날짜 표현 방법 '문자열'
let date1 = new Date('12/15/1999 05:25:30'); let date2 = new Date('December 15, 1999 05:25:30'); let date3 = new Date('Dec 15 1999 05:25:30');
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(2017, 4, 18, 19, 11, 16); myDate.setFullYear(2002); //myDate의 년도를 2002로 수정 myDate.setMonth(6); //myDate의 월을 6으로 수정 myDate.setDate(20); //myDate의 일을 20으로 설정 //myDate = 2002/06/20/19:11:16
간단하게 시간정보 알아내기
toLocaleDateString(), toLocaleTimeString(), toLocaleString() 메소드는 사용자의 브라우저에 설정된 국가의 표기에 맞춰 날짜와 시간을 알려준다.
let myDate = new Date(); console.log(myDate.toLocaleDateString()); // myDate가 가진 날짜에 대한 정보 (년. 월. 일) console.log(myDate.toLocaleTimeString()); // myDate가 가진 시간에 대한 정보 (시:분:초) console.log(myDate.toLocaleString()); // myDate가 가진 날짜와 시간에 대한 정보 (년. 월. 일 시:분:초)
Date 자동 수정
Date 객체엔 자동으로 날짜를 수정해주는 유용한 기능도 존재
범위를 벗어나는 값을 설정하려고 하면 자동으로 날짜를 수정
let myDate = new Date(1988, 0, 32); // 1988년 1월 32일은 없다 // 2월 1일로 자동고침 되는걸 확인할 수 있다. console.log(myDate) // Mon Feb 01 1988 00:00:00
현 시점의 날짜 값 알아내기
Date.now() 메소드는 이 메소드가 호출된 시점의 타임스탬프를 반환
let myDate = new Date(); console.log(Date.now() === myDate.getTime()); // true
Date 객체의 형반환
let myDate = new Date(2017, 4, 18); console.log(typeof myDate); // object console.log(String(myDate)); // Thu May 18 2017 00:00:00 GMT+0900 (Korean Standard Time) console.log(Number(myDate)); // 1495033200000 console.log(Boolean(myDate)); // true
이때 Number로 형반환을 진행하였을 때 getTime() 메소드를 활용한 것과 똑같은 수치의 타임스탬프 값을 가진다.
= Date 객체끼리 바로 사칙 연산도 가능!
let myDate1 = new Date(2017, 4, 18); let myDate2 = new Date(2017, 4, 19); let timeDiff = myDate2 - myDate1; console.log(timeDiff); // 86400000 (ms) console.log(timeDiff / 1000); // 86400 (sec) console.log(timeDiff / 1000 / 60) // 1440 (min) console.log(timeDiff / 1000 / 60 / 60) // 24 (hour) console.log(timeDiff / 1000 / 60 / 60 / 24) // 1 (date)
'Java script' 카테고리의 다른 글
[JavaScript] slice()와 indexOf() 활용하기 (0) 2024.01.18 [JavaScript] 배열 메소드- 값 찾기 & 추가 & 삭제 (4) 2023.12.07 [JavaScript] for .. in 문 (2) 2023.12.07 [Java Script] 배열과 인덱스, 요소 삽입 & 삭제 (2) 2023.12.05 [Java Script] 변수 선언 (1) 2023.12.01