[JS] 표준 내장 객체 - 날짜

김다빈·2023년 8월 9일
0

자바스크립트

목록 보기
9/36
post-thumbnail

표준 내장 객체 내용은 다 외울건 아니고 그냥 이런게 있구나... 나중에 쓸 일 있으면 참고하려고 작성합니다.

📢 표준 내장 객체 학습 시 주의사항

새로운 데이터를 반환하는지, 원본 데이터를 수정하는지를 확인하기!


📌 날짜

const date = new Date()
console.log(date) //Wed Aug 09 2023 15:13:27 GMT+0900 (한국 표준시)
  • 타임스탬프 (TimeStamp) : Wed Aug 09 2023 15:13:27 GMT+0900 (한국 표준시)
  • 자바스크립트는 특이하게 월(月)만 zero-based-numbering을 적용한다. 그래서 1월 = 0, 2월 = 1... 로 작성해야 한다.
const d1 = new Date(2023, 08, 09, 12, 23, 30)
//Expected output
//Aug 09 2023 12:23:30

console.log(d1) //Sat Sep 09 2023 12:23:30 GMT+0900 (한국 표준시)
console.log(d1.getFullYear()) //2023

.getFullYear() 와 .setFullYear()

  • 날짜 인스턴스의 연도를 반환하거나 지정
  • set 키워드로 시작하는 메소드를 사용하면 원하는 값으로 지정해서 날짜 데이터를 사용할 수 있다.
const date = new Date()
console.log(date.getFullYear()) //2023

date.setFullYear(2024)
console.log(date.getFullYear()) //2024
console.log(date) //Fri Aug 09 2024 15:27:43 GMT+0900 (한국 표준시)

.getMonth() 와 .setMonth()

  • 날짜 인스턴스의 월(月)를 반환하거나 지정
  • 0부터 시작한다. (zero-based-numbering)
const date = new Date()

console.log(date.getMonth())
//Expected output : 8월
//Real output : 7 (zero-based-numbering)

date.setMonth(0) // 0 = 1월
console.log(date.getMonth()) //0 = 1월
console.log(date) //Mon Jan 09 2023 15:33:02 GMT+0900

.getDate() 와 .setDate()

  • 날짜 인스턴스의 일(日)를 반환하거나 지정

.getHours() 와 .setHours()

  • 날짜 인스턴스의 시(時)를 반환하거나 지정
  • 24시간 단위를 사용
const date = new Date()

console.log(date.getHours()) //15 (=오후 3시)

date.setHours(3)
console.log(date.getHours()) //3 (=오전 3시)
console.log(date) //Wed Aug 09 2023 03:38:04 GMT+0900 (한국 표준시)

.getMinutes() 와 .setMinutes()

  • 날짜 인스턴스의 분(分)를 반환하거나 지정

.getSeconds() 와 .setSeconds()

  • 날짜 인스턴스의 초(秒)를 반환하거나 지정

.getDay()

  • 날짜 인스턴스의 '요일'을 반환 (요일을 지정하는 set 메소드는 없음)
요일
0일요일
1월요일
2화요일
3수요일
4목요일
5금요일
6토요일

.getTime() 와 .setTime()

  • 1970년 1월 1일 00:00:00 (UTC, 유닉스타임)부터 경과한, 날짜 인스턴스의 'ms(밀리초)'를 반환하거나 지정
const date = new Date()

console.log(date.getTime()) //1691566496498
console.log(date) //Wed Aug 09 2023 16:34:56 GMT+0900 (한국 표준시)

date.setTime(1700000000000)
console.log(date.getTime()) //1700000000000
console.log(date) //Wed Nov 15 2023 07:13:20 GMT+0900 (한국 표준시)

Date.now()

  • 정적 메소드
  • 1970년 1월 1일 00:00:00 (UTC, 유닉스타임)부터 경과한, 메소드가 호출되었을 때의 'ms(밀리초)'를 반환
  • .getTime() 과 다른 점은 getTime() 은 날짜 인스턴스가 생성된 순간의 밀리초를 반환하고, Date.now()는 해당 메소드가 호출된 시점의 밀리초를 반환한다.

예제

const time = new Date().getTime()
console.log(Date.now()) //1691567030713
console.log(time) //1691567030713

setTimeout(() => {
  console.log(Date.now()) //1691567031716
  console.log(time) //1691567030713
}, 1000)

time (=.getTime()) 은 setTimeout 함수 안에 들어가도 그 값이 변하지 않는다. 왜? 이미 new Date() 해서 생성된 순간의 밀리초가 기록되어 있기 때문.
반면, Date.now() 는 해당 메소드가 호출되는 순간마다 다른 값을 가지게 되므로 setTimeout 함수 안에서 1초 뒤에 실행될 경우 이미 생성된 순간의 밀리초를 가진 time 보다 1초 느린 값을 갖게 된다.

profile
Hello, World

0개의 댓글

관련 채용 정보