준호씨의 블로그

JavaScript - 날짜 더하기 빼기. 특정 날짜가 있는 주의 일요일 날짜를 구하려면? 본문

개발이야기

JavaScript - 날짜 더하기 빼기. 특정 날짜가 있는 주의 일요일 날짜를 구하려면?

준호씨 2021. 2. 3. 23:28
반응형

Javascript에서 오늘의 날짜를 구하는 방법은 new Date()입니다.

var today = new Date();
console.log(today); // 2021-02-03T14:07:47.203Z

만약 어제의 날짜를 구하거나 내일의 날짜를 구하려면 어떻게 해야 할까요?

getDate()로 날짜 값을 꺼내온 다음 거기다가 숫자를 더하거나 뺍니다. 그리고 그 결과를 다시 setDate로 저장하면 됩니다.

아래처럼 해봅시다.

var date = new Date();
date.setDate(date.getDate() - 1);
console.log(date); // 2021-02-02T14:09:37.847Z

어제 날짜를 손쉽게 구했습니다.

내일 날짜는 1을 더해주면 됩니다.

var date = new Date();
date.setDate(date.getDate() + 1);
console.log(date); // 2021-02-04T14:09:53.611Z

 

코드 라인 수를 줄이고 싶다면 아래처럼 할 수 있습니다.

var yesterday = new Date(new Date().setDate(new Date().getDate() - 1));

날짜 객체 생성을 3번이나 하기 때문에 효과적이지는 않습니다.

함수를 만들자마자 호출하는 방법을 사용할 수도 있지만 조금 복잡하고 어려워 보입니다.

var yesterday = function (date) {
    date.setDate(date.getDate() - 1);
    return date;
}(new Date);

 

Date에 addDays 함수를 만들어 붙여서 사용하는 방법도 있습니다.

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

prototype을 건드리기 찜찜하다면 따로 함수를 만들 수도 있습니다.

console.log(">> addDays function");
function addDays(date, days) {
    date.setDate(date.getDate() + days);
    return date;
}
console.log(addDays(date, 1));

 

날짜 더하기, 빼기 팁으로 특정 날짜가 있는 주의 일요일을 구하는 방법을 알아보겠습니다.

var date = new Date();
console.log(date); // 2021-02-03T14:21:42.188Z
date.setDate(date.getDate() - date.getDay());
console.log(date); // 2021-01-31T14:21:42.188Z

getDay()는 요일을 날짜로 리턴하는 함수입니다. 일요일은 0이고 순서대로 월요일은 1, 화요일은 2, 수 3, 목 4, 금 5, 토 6입니다.

2021년 2월 3일은 수요일이고 3입니다. 3일을 빼면 2021년 1월 31일 일요일이 나옵니다.

달력을 직접 그릴 일이 있을 때 일요일 칸부터 그려야 되니 달력을 그릴 때 사용할 수 있겠네요.

평일의 첫째 요일인 월요일의 날짜를 구하려면 일요일에서 1을 더해주면 되겠죠? 여러모로 응용할 수 있수 있겠습니다.

반응형
Comments