Date 객체는 날짜와 시간을 표시하는 객체이다.
let date=new Date(); alert(date); |
위와 같은 방법으로 생성이 가능하다. 시간은 최신 웹 브라우저는 GMT시간을 기준으로 표기가 되고, 일부 구형 웹 브라우저들은 UTC 시간을 기준으로 표기된다.
1
2
3
4
5
|
let BirthDay = new Date('December 18, 1991 02:30:00')
let ToDay = new Date(2018, 0, 1, 0, 0, 0);
console.log(BirthDay);
console.log(ToDay);
|
cs |
문자열(영어로 가능하다)로 입력하는 방식도 있고, 매개변수에 숫자로 연, 월, 일, 시, 분, 초 그리고 밀리 초 순서로 입력해 Date 객체를 생성한다. 주의할 점은 매개변수에 숫자로 입력중 월을 입력할 때는 자신이 적으려는 월-1을 해주어야 한다. 12월을 입력 하려면 11을 입력을 해야한다.
이 외에도 Unix time을 이용하는 방법도 있는데 이것은 1970년 1월 1일 00시를 기준으로 경과한 시간을 밀리 초 단위로 나타내는 방식이다.
Date 객체의 메서드는 get 형태와 set 형태가 있다. set 형태의 메서드는 시간을 설정하는 것이고 get 형태의 메서드는 시간을 가져오는 것이다. 예를 들어 이것을 이용해 7일뒤의 시간을 구할 수 있다.
1
2
3
4
5
6
7
8
9
|
let date = new Date();
// 현재 시간을 구하는 방법
date.setDate(date.getDate());
console.log(date);
// 현재 시간에서 부터 7일뒤의 시간을 구하는 방법
date.setDate(date.getDate()+7);
console.log(date);
|
cs |
이런 방법으로 1시간후, 1년후 시간까지 구할 수 있다.
Date 객체는 get과 set 외에도 to메서드 이름String() 형태의 메서드도 있다.
1
2
3
4
5
6
7
8
9
10
11
|
let result='';
result+='1. toDateString : '+DD.toDateString()+'\n';
result+='2. toGMTString : '+DD.toGMTString()+'\n';
result+='3. toLocaleDateString : '+DD.toLocaleDateString()+'\n';
result+='4. toLocaleString : '+DD.toLocaleString()+'\n';
result+='5. toString : '+DD.toString()+'\n';
result+='6. toTimeString : '+DD.toTimeString()+'\n';
result+='7. toUTSString : '+DD.toUTCString()+'\n';
console.log(result);
|
cs |
Date 객체는 D-Day를 구할 때도 활용할 수 있다. 날짜 간격을 구할 때는 getTime() 함수를 이용한다. getTime() 함수를 사용하면 1970년 1월 1일 자정부터 지난 밀리 초를 구하는데 이것을 이용해서 두개의 시간 사이의 초 간격을 구하고 다시 날짜로 바꿔서 얼마나 지났는지를 구할 수 있다.
1
2
3
4
5
6
7
|
let now=new Date();
let before=new Date(1991, 11, 18);
let interval=now.getTime() - before.getTime();
interval=Math.floor(interval/(1000*60*60*24));
console.log('1991년 12월 18일로부터 '+interval+'일 지났습니다.');
|
cs |
위의 메서드를 Date 객체의 프로토타입에 넣어 활용하면 편리하게 날짜간 간격을 구할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Date.prototype.getInterval=function(otherDate){
let date;
if(this>otherDate){
interval=this.getTime()-otherDate.getTime();
}else{
interval=otherDate.getTime()-this.getTime();
}
return Math.floor(interval/(1000*60*60*24));
};
let now=new Date();
let before=new Date(prompt('날짜를 입력하라', '예) December 18, 1991'));
alert('입력한 날부터 현재까지 '+now.getInterval(before)+'일 지났습니다.');
|
cs |
'프로그래밍 공부 > JavaScript' 카테고리의 다른 글
JavaScript - 기본 내장 객체 심화 (0) | 2019.12.13 |
---|---|
JavaScript - Math 객체 (0) | 2019.12.13 |
JavaScript - Array 객체 (0) | 2019.12.12 |
JavaScript - String 객체 (0) | 2019.12.12 |
JavaScript - Number 객체 (0) | 2019.12.11 |