벤권의 개발자 이야기

JavaScript에서 시간(Date) 객체에 분/시간/일 더하는 법 본문

-/javascript

JavaScript에서 시간(Date) 객체에 분/시간/일 더하는 법

벤권 2022. 2. 19. 23:21

1. Date에 분(minute)단위로 시간 더하는 법

 

초 단위를 시간 객체에 더하는 법은 여러가지가 존재하지만 아래 방법이 가장 간단하고 가독성도 좋다고 생각합니다.

const minutes = 3 // 더하기 원하는 시간(분) 
let time = new Date(new Date().getTime() + minutes * 60000); // 3분 추가

getTime() 이란 1970 년 1 월 1 일 00:00:00 UTC와 주어진 날짜 사이의 경과 시간 (밀리 초)을 나타내는 숫자입니다.

따라서 60000밀리 초는 1분이므로 위와 같이 getTime()의 결과에 60000*{원하는 시간}을 곱해주면 됩니다.

 

 

2. Date에 시간(hour)단위로 시간 더하는 법

 

분 단위로 시간 객체에 더하는 법은 1번과 같이 밀리 초를 계산하여 더하는 방법도 있지만 getHours()와 setHours를 설정하는게 함수명에서 그 의미를 찾을 수가 있기때문에 해당 함수들을 이용하는게 좋습니다.

let time = new Date();
time = new Date(time.setHours(time.getHours() + 2));

참고로 getHours() 메서드는 주어진 날짜의 현지 시간 기준 시를 반환합니다.

var Xmas95 = new Date('December 25, 1995 23:15:30');
var hours = Xmas95.getHours();

console.log(hours); // 23

 

 

3. Date에 일(day)단위로 시간 더하는 법

일 단위로 시간 객체에 더하는 법은 마찬가지로 setDate()와 getDate()함수가 존재하기 때문에 시간 단위로 시간 더하는 법과의 마찬가지의 이유로 해당 함수들을 이용해서 예제를 작성하도록 하겠습니다.

let time = new Date();
time.setDate(time.getDate() + 7);

getDate() 메서드는 주어진 날짜의 현지 시간 기준 일을 반환합니다.

var Xmas95 = new Date('December 25, 1995 23:15:30');
var day = Xmas95.getDate();

console.log(day); // 25

 

 

마치며

위와 같이  때마다 시간을 조절하는 것도 좋지만 prototype에 메소드를 추가해서 하는 방법도 코드를 가독성이 좋고 깔끔하게 유지하는 방법이라고 생각합니다. 아래는 prototype을 활용하여 일(day)를 조절하는 예제 코드입니다.

 

Date.prototype.addDays = function (days) {
    const date = new Date(this.valueOf());
    date.setDate(date.getDate() + days);
    return date;
};

// Add 7 Days
const date = new Date('2020-12-02');

console.log(date.addDays(7));
// 2020-12-09T00:00:00.000Z
Comments