[TIL / JavaScript] Date 객체

Changyun Go·2021년 8월 15일
post-thumbnail

[JavaScript] Date 객체

  • Date 객체는 날짜와 시간을 위한 메소드를 제공하는 빌트인 객체이면서 생성자 함수이다.
  • 밀리초(천분의 1초)까지 제공한다.
  • Date 생성자 함수로 생성한 Date 객체는 내부적으로 숫자값을 갖는다.
  • 기술적인 표기에서는 UTC(협정 세계시: Coordinated Universal Time)가 사용된다. → KST(Korea Standard Time)는 UTC/GMT보다 9시간이 빠르다.
  • 현재의 날짜와 시간은 JavaScript 코드가 동작한 시스템의 시계에 의해 결정된다.

Date 생성자 함수


new Date()

  • 인수를 전달하지 않으면 현재 날짜와 시간을 가지는 인스턴스를 반환한다.
  • 밀리초를 전달하면 1970년 1월 1일 00:00(UTC)을 기점으로 인수로 전달된 밀리초만큼 경과한 날짜와 시간을 가지는 인스턴스(timestamp)를 반환한다.
  • 인수로 날짜와 시간을 나타내는 문자열을 전달하면 지정된 날짜와 시간을 가지는 인스턴스를 반환한다.
let date = new Date('May 16, 2019 17:22:10');
console.log(date); // Thu May 16 2019 17:22:10 GMT+0900 (한국 표준시)

date = new Date('2019/05/16/17:22:10');
console.log(date); // Thu May 16 2019 17:22:10 GMT+0900 (한국 표준시)
  • 인수로 년, 월, 일, 시, 분, 초, 밀리초를 의미하는 숫자를 전달하면 지정된 날짜와 시간을 가지는 인스턴스를 반환한다. 이때 년, 월은 반드시 지정하여야 하며 지정하지 않은 옵션 정보는 0 또는 1으로 초기화된다.
// 월을 나타내는 4는 5월을 의미한다. -> 0부터 시작하기 때문이다.
// 일은 정수 1부터 시작한다.
// 2019/5/1/00:00:00:00
let date = new Date(2019, 4);
console.log(date); // Wed May 01 2019 00:00:00 GMT+0900 (한국 표준시)

// 2019/5/16/17:24:30:00
date = new Date(2019, 4, 16, 17, 24, 30, 0);
console.log(date); // Thu May 16 2019 17:24:30 GMT+0900 (한국 표준시)
  • Date 생성자 함수를 new 연산자없이 호출하면 인스턴스를 반환하지 않고 결과값을 문자열로 반환한다.
let date = Date();
console.log(typeof date, date); 
// string Thu May 16 2019 17:33:03 GMT+0900 (한국 표준시)

Date 메소드


Date.now()

  • 1970년 1월 1일 00:00:00(UTC)을 기점으로 현재 시간까지를 millisecond 단위 정수로 리턴한다.
console.log(Date.now());// 1585224100127
console.log(new Date(1585224100127));// Thu Mar 26 2020 21:01:40 GMT+0900 (대한민국 표준시

Date.parse()

  • 1970년 1월 1일 00:00:00(UTC)부터 인수로 전달된 시간까지를 millisecond 단위 정수로 리턴한다.
console.log(Date.parse("2020-03-26UTC13:30:00"));// 1585229400000
console.log(Date.parse("2020-03-26 13:30:00"));// 1585197000000
console.log(Date.parse("2020/03/26 22:30:00"));// 1585229400000

getFullYear()

  • 현재 연도를 4비트의 숫자(YYYY)로 리턴한다.
  • 연도(year) 표현 : 1900년(00) ~ 1999년(99), 2000년(100)
var date = new Date();// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
var yyyy = date.getFullYear();// 2020
var yyy = date.getYear();// 120, 다음과 같은 결과가 나온다. 그래서 get Year는 잘 사용하지 않는다.

setFullYear()

  • 연도를 4비트의 숫자(YYYY)로 세팅한다.
  • 문법 : dateObj.setFullYear(year[, month[, day]])
var date = new Date();// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
date.setFullYear(2021);// Thu Mar 26 2021 21:11:22 GMT+0900 (대한민국 표준시)
date.setFullYear(2020, 0);// Sun Jan 26 2021 21:11:22 GMT+0900 (대한민국 표준시)
date.setFullYear(2020, 0, 1);// Wed Jan 01 2021 21:11:22 GMT+0900 (대한민국 표준시)

getMonth()

  • 현재 월을 정수로 반환한다.
  • 월(month) 표현 : 1월(0) ~ 12월(11)
var date = new Date();
console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.getMonth());// 2

setMonth()

  • 월을 정수로 설정한다.
  • 문법 : dateObj.setMonth(month[, day])
var date = new Date();// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
date.setMonth(4);// 5월
console.log(date);// Fri May 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
date.setMonth(4, 1);// 5월 1일
console.log(date);// Fri May 1 2020 21:11:22 GMT+0900 (대한민국 표준시)

getDate()

  • 날짜를 정수로 반환한다.
  • 날짜 표현 : 1일(1) ~ 31일(31)
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.getDate());// 26

setDate()

  • 날짜를 정수로 설정한다.
  • 문법 : dateObj.setDate(day)
var date =new Date();// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
date.setDate(1);// 1일
console.log(date);// Sun Mar 01 2020 13:36:31 GMT+0900 (대한민국 표준시)

getDay()

  • 요일을 정수로 반환한다.
  • 요일 표현 : 일요일(0) ~ 토요일(6)
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.getDay());// 4

getHours()

  • 시간을 정수로 반환한다.
  • 시간 표현 : 0~23
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.getHours());// 21

setHours()

  • 시간을 정수로 설정한다.
  • 문법 : dateObj.setHours(hour[, minute[, second[, ms]]])
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.setHours(20));// 20

getMinutes()

  • 분을 정수로 반환한다.
  • 분 표현 : 0~59
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.getMinutes());// 11

setMinutes()

  • 분을 정수로 설정한다.
  • 문법 : dateObj.setMinutes(minute[, second[, ms]])
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.setMinutes(20));// 20

getSeconds()

  • 초를 정수로 반환한다.
  • 초 표현 : 0~59
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.getSeconds());// 22

setSeconds()

  • 초를 정수로 설정한다.
  • 문법 : dateObj.setSeconds(second[, ms])
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.setSeconds(20));// 20

getMilliseconds()

  • 밀리초를 정수로 반환한다.
  • 밀리초 표현 : 0~999
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.getMilliseconds());// 111

setMilliseconds()

  • 밀리초를 정수로 설정한다.
  • 문법 : dateObj.setMilliseconds(ms)
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.setMilliseconds(999));// 999

getTime()

  • 1970년 1월 1일 0시 0분 0초부터 현재까지의 시간을 밀리초 단위로 환산하여 숫자로 리턴한다.
var date =new Date();

console.log(date);// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.getTime());// 1585224682000

setTime()

  • 1970년 1월 1일 0시 0분 0초부터 현재까지 지난 시간을 밀리초 단위로 설정한다.
  • 문법 : dateObj.setTime(ms)
var date =new Date();

// 1970년 1월 1일 0시 0분 0초부터 현재까지 지난 시간을 밀리초 단위로 설정
console.log(date.setTime(86400000 * 30));
// 86400000(1일) * 30 => Sat Jan 31 1970 09:00:00 GMT+0900 (대한민국 표준시)

DateString() / toTimeString() / toString()

  • 날짜를 문자열로 반환한다.
var date =new Date("Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)");
console.log(date.toDateString());// Thu Mar 26 2020
console.log(date.toTimeString());// 21:11:22 GMT+0900 (대한민국 표준시)
console.log(date.toString());// Thu Mar 26 2020 21:11:22 GMT+0900 (대한민국 표준시)

P.S.

다수가 공유하는 공통된 기준을 따르는 데이터라면 Date같이 주어진 기능을 잘 활용하는 것도 능력이라는 생각이 든다🙃

참고 문서


0개의 댓글