[Study/JavaScript] Date 객체

SoShy·2023년 11월 30일

JavaScript_Study

목록 보기
10/36
post-thumbnail

🥕 Date 객체

  • 내장 객체 (Standard built-in object) : JS가 미리 가지고 있는 객체
    - console.log()Date 등이 내장 객체

  • new Date(): 객체를 생성한 순간의 시간을 출력

let myDate = new Date();

console.log(myDate);
.
.
.
>>> 2023-11-19T03:56:35.900Z

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

console.log(myDate);
.
.
.
>>> 1970-01-01T00:00:01.000Z

  • new Date('연도-월-일'): 해당 날짜에 대한 객체 생성
let myDate = new Date('2023-11-19');

console.log(myDate);
.
.
.
>>> 2023-11-19T00:00:00.000Z

  • new Date('연도-월-일T시:분:초'): 해당 날짜 및 시간에 대한 객체 생성
let myDate = new Date('2023-11-19T13:03:11');

console.log(myDate);
.
.
.
>>> 2023-11-19T13:03:11.000Z

  • new Date (YYYY, MM, DD, hh, mm, ss, ms)
    - 연도, 월은 필수 입력 / 나머지는 생략 가능
    • month는 0부터 시작
let myDate = new Date(2023, 10, 19);

console.log(myDate);
.
.
.
>>> 2023-11-19T00:00:00.000Z

  • Date 객체는 범위를 벗어나는 값을 설정하려고 하면 자동으로 날짜를 수정함.
let myDate = new Date(1988, 0, 32);

console.log(myDate)
.
.
.
>>> 1988-02-01T00:00:00.000Z

💡 아래와 같은 방법으로도 날짜 표현은 가능하지만, 브라우저나 사용 위치의 시간대에 따라 서로 다른 결과값이 나올 수 있으므로 사용 지양

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');

1. getTime method

  • Date 객체의 기준 날짜인 1970년 1월 1일 0시 0분 0초에 맞춰서, 몇 밀리초가 지났는 지 계산

  • 이 정수값을 time stamp라고 부름.

let myDate = new Date(2017, 4, 18, 19, 11, 16);
let today = new Date();

let timeDiff = myDate.getTime() - today.getTime();

console.log(timeDiff + '밀리초');
console.log(timeDiff + '초');
console.log(timeDiff / 1000 / 60 + '분');
console.log(timeDiff / 1000 / 60 / 60 + '시간');
.
.
.
>>> -205232529304밀리초
	-205232529304-3420542.1550666667-57009.03591777778시간

  • 특정 날짜 정보만 출력하는 것도 가능
    - Date : 인식하는 일자
    - Day : 요일 (일요일을 시작으로 0 ~ 6)
let myDate = new Date(2017, 4, 18, 19, 11, 16);

console.log(myDate.getFullYear());
console.log(myDate.getMonth());
console.log(myDate.getDate());
console.log(myDate.getDay());
console.log(myDate.getHours());
console.log(myDate.getMinutes());
console.log(myDate.getSeconds());
console.log(myDate.getMilliseconds());
.
.
.
>>> 2017
	4
	18
	4
	19
	11
	16
	0

2. Date.now method

  • 해당 method가 호출된 시점의 타임스탬프를 반환
  • 새로운 객체를 만들지 않아도 된다는 장점이 있음.
let myDate = new Date();

console.log(Date.now() === myDate.getTime());
.
.
.
>>> true

3. setTime method

  • 생성된 Date 객체 정보 수정
let myDate = new Date(2017, 4, 18, 19, 11, 16);

console.log(myDate);

myDate.setFullYear(2002);
myDate.setMonth(6);
myDate.setDate(20);

console.log(myDate);
.
.
.
>>> 2017-05-18T19:11:16.000Z
	2002-07-20T19:11:16.000Z

4. 시간 정보 확인

let myDate = new Date();

// myDate가 가진 날짜에 대한 정보 (년. 월. 일)
console.log(myDate.toLocaleDateString());

// myDate가 가진 시간에 대한 정보 (시:분:초)
console.log(myDate.toLocaleTimeString());

// myDate가 가진 날짜와 시간에 대한 정보 (년. 월. 일 시:분:초)
console.log(myDate.toLocaleString());
.
.
.
>>> 11/19/2023
	4:28:30 AM
	11/19/2023, 4:28:30 AM

5. Date 객체의 형변환

let myDate = new Date(2017, 4, 18);

console.log(typeof myDate); 
console.log(String(myDate)); 
console.log(Number(myDate));
console.log(Boolean(myDate));
.
.
.
>>> object
	Thu May 18 2017 00:00:00 GMT+0000 (Coordinated Universal Time)
	1495065600000
	true

  • 형변환을 이용하면, Date 객체끼리의 사칙 연산이 가능함. (시간 차이 확인)
let myDate1 = new Date(2017, 4, 18);
let myDate2 = new Date(2017, 4, 19);

let timeDiff = myDate2 - myDate1;
console.log(timeDiff);
console.log(timeDiff / 1000); 
console.log(timeDiff / 1000 / 60);
console.log(timeDiff / 1000 / 60 / 60);
console.log(timeDiff / 1000 / 60 / 60 / 24);
.
.
.
>>> 86400000
	86400
	1440
	24
	1
profile
프론트엔드 개발자가 되기 위해 노력 중인 새싹🌱 입니다.

0개의 댓글