Date 객체는 생성자 함수
Date 생성자 함수는 날짜와 시간을 가지는 인스턴스를 생성
생성된 인스턴스는 기본적으로 현재 날짜와 시간을 나타내는 값을 가짐
현재 날짜와 시간이 아닌 다른 날짜와 시간을 다루고 싶은 경우, Date 생성자 함수에 명시적으로 해당 날짜와 시간 정보를 인수로 지정

Date 생성자 함수로 객체를 생성하는 방법
1. new Date()
인수를 전달하지 않으면 현재 날짜와 시간을 가지는 인스턴스를 반환

const date = new Date();
console.log(date); // Thu May 16 2019 17:16:13 GMT+0900 (한국 표준시)
  1. new Date(milliseconds)
    인수로 숫자 타입의 밀리초를 전달하면 1970년 1월 1일 00:00(UTC)을 기점으로 인수로 전달된 밀리초만큼 경과한 날짜와 시간을 가지는 인스턴스를 반환\
let date = new Date(0);
console.log(date); // Thu Jan 01 1970 09:00:00 GMT+0900 (한국 표준시)

// 1s = 1,000ms
// 86400000ms는 1day를 의미
date = new Date(86400000);
console.log(date); // FFri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
  1. new Date(dateString)
    인수로 날짜와 시간을 나타내는 문자열을 전달하면 지정된 날짜와 시간을 가지는 인스턴스를 반환
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 (한국 표준시)
  1. new Date(year, month[, day, hour, minute, second, millisecond])
    인수로 년, 월, 일, 시, 분, 초, 밀리초를 의미하는 숫자를 전달하면 지정된 날짜와 시간을 가지는 인스턴스를 반환
    때 년, 월은 반드시 지정
    지정하지 않은 옵션 정보는 0 또는 1으로 초기화
    년, 월을 지정하지 않은 경우 1970년 1월 1일 00:00(UTC)을 가지는 인스턴스를 반환
// 월을 나타내는 4는 5월을 의미한다.
let date = new Date(2019, 4);
console.log(date); // Wed May 01 2019 00:00:00 GMT+0900 (한국 표준시)

date = new Date(2019, 4, 16, 17, 24, 30, 0);
console.log(date); // Thu May 16 2019 17:24:30 GMT+0900 (한국 표준시)

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

Date 메소드
1. Date.now
1970년 1월 1일 00:00:00(UTC)을 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환

const now = Date.now();
  1. Date.parse
    1970년 1월 1일 00:00:00(UTC)을 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환
let d = Date.parse('Jan 2, 1970 00:00:00 UTC'); // UTC 표현1
d = Date.parse('Jan 2, 1970 09:00:00'); // KST 표현2
d = Date.parse('1970/01/02/09:00:00'); // KST 표현3
console.log(d); // 86400000
  1. Date.UTC(year, month[, day, hour, minute, second, millisecond])
    1970년 1월 1일 00:00:00(UTC)을 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환
    인수는 local time(KST)가 아닌 UTC로 인식
    month는 월을 의미하는 0~11까지의 정수, 0부터 시작하므로 주의가 필요
let d = Date.UTC(1970, 0, 2);
console.log(d); // 86400000

d = Date.UTC('1970/1/2');	//정해진 형식만 가능
console.log(d); // NaN
  1. Date.getFullYear
    년도를 나타내는 4자리 숫자를 반환
const today = new Date().getFullYear();
console.log(today);  // 2019
  1. Date.setFullYear
    년도를 나타내는 4자리 숫자를 설
    년도 이외 월, 일도 설정 가능
const today = new Date();
today.setFullYear(1900, 0, 1);  // 년도 지정
year = today.getFullYear();
console.log(year);  // 1900
  1. Date.getMonth
    월을 나타내는 0 ~ 11의 정수를 반환
    1월은 0, 12월은 11
const month = new Date().getMonth();
// Thu May 16 2019 17:44:03 GMT+0900 (한국 표준시)
console.log(month); // 4
  1. Date.setMonth(month[, day])
    월을 나타내는 0 ~ 11의 정수를 설정
    1월은 0, 12월은 11, 월 이외 일도 설정 가능
const today = new Date();
today.setMonth(11, 1); // 월/일을 지정, 12월 1일
console.log(today); // Sun Dec 01 2019 17:45:20 GMT+0900 (한국 표준시)
  1. Date.getDate
    날짜(1 ~ 31)를 나타내는 정수를 반환
const date = new Date().getDate();
console.log(date);
  1. Date.setDate
    날짜(1 ~ 31)를 나타내는 정수를 설정
const today = new Date();
today.setDate(1);   //일자 지정
console.log(today); // Wed May 01 2019 17:47:01 GMT+0900 (한국 표준시)
  1. Date.getDay
    요일(0 ~ 6)를 나타내는 정수를 반환
    0은 일요일, 6은 토요일
const today = new Date();
const day = today.getDay();
console.log(day);
  1. Date.getHours
    시간(0 ~ 23)를 나타내는 정수를 반환
const today = new Date();
const hours = today.getHours();
console.log(hours); // 17
  1. Date.setHours(hour[, minute[, second[, ms]]])
    시간(0 ~ 23)를 나타내는 정수를 설정
    시간 이외 분, 초, 밀리초도 설정 가능
const today = new Date();
today.setHours(11, 0, 0, 0); // 시간/분/초/밀리초 지정, 00:00:00:00
hours = today.getHours();
console.log(hours); // 11
  1. Date.getMinutes
    분(0 ~ 59)를 나타내는 정수를 반환
const today = new Date();
const minutes = today.getMinutes();
console.log(minutes);
  1. Date.setMinutes(minute[, second[, ms]])
    분(0 ~ 59)를 나타내는 정수를 설정
    분 이외 초, 밀리초도 설정 가능
const today = new Date();
today.setMinutes(5, 10, 999); // 분/초/밀리초 지정, 05:10:999
minutes = today.getMinutes();
console.log(minutes); // 5
  1. Date.getSeconds
    초(0 ~ 59)를 나타내는 정수를 반환
const today = new Date();
const seconds = today.getSeconds();
console.log(today);
console.log(seconds);
  1. Date.setSeconds(second[, ms])
    초(0 ~ 59)를 나타내는 정수를 설정
    초 이외 밀리초도 설정 가능
const today = new Date();
today.setSeconds(15, 0); // 초/밀리초 지정, 10:000
seconds = today.getSeconds();
console.log(seconds); // 15
  1. Date.getMilliseconds
    밀리초(0 ~ 999)를 나타내는 정수를 반환
const today = new Date();
const ms = today.getMilliseconds();
console.log(today);
console.log(ms);
  1. Date.setMilliseconds
    밀리초(0 ~ 999)를 나타내는 정수를 설정
const today = new Date();
today.setMilliseconds(123); // 밀리초 지정
const ms = today.getMilliseconds();
console.log(ms);    // 123
  1. Date.getTime
    1970년 1월 1일 00:00:00(UTC)를 기점으로 현재 시간까지 경과된 밀리초를 반환
const today = new Date();
const time = today.getTime();
console.log(time);  // 1557996968335
  1. Date.setTime(time)
    1970년 1월 1일 00:00:00(UTC)를 기점으로 현재 시간까지 경과된 밀리초를 설정
const today = new Date();
today.setTime(86400000); // 86400000 === 1day
const time = today.getTime();
console.log(today); // Fri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
console.log(time);  // 86400000
  1. Date.getTimezoneOffset
    UTC와 사용자 PC 설정 시간의 차이를 분단위로 반환
const today = new Date().getTimezoneOffset() / 60;
console.log(today); // -9
  1. Date.toDateString
    사람이 읽을 수 있는 형식의 문자열로 날짜를 반환
const d = new Date('2019/5/16/18:30');
console.log(d.toDateString()); // Thu May 16 2019
  1. Date.toTimeString
    사람이 읽을 수 있는 형식의 문자열로 시간을 반환
const d = new Date('2019/5/16/18:30');
console.log(d.toTimeString()); // 18:30:00 GMT+0900 (한국 표준시)
profile
Front-end Developer 💻🔜

0개의 댓글