본문 바로가기

프로그래밍 공부/JavaScript

JavaScript - Date 객체

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(201801000);
 
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(19911118);
 
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

Date 객체.html
0.00MB

'프로그래밍 공부 > 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