본문 바로가기
놀기/기초 공부

[JavaScript] 어제, 오늘, 내일 날짜/시간 계산

by Hi~ 2021. 7. 31.

JavaScript에서는 new Date()로 현재 날짜/시간을 얻을 수 있다. 내일, 어제, 10시간 전 등과 같은 시점의 시간을 구하기 위해서는 현재 날짜/시간을 기준으로 계산을 해야 한다. 이런 것에 대한 변환 함수를 제공하는 언어가 있는 반면 그렇지 않은 언어도 많다. 그래서, 귀찮게 그런 것 찾지 않고, timestamp 기반으로 계산하는 방법을 사용한다.

 

현재 Date를 얻은 후, timestamp로 변환하고 이 값에 특정 값을 더하거나 빼는 방식이다. 예를 들어 어제 시점의 값을 얻고 싶으면 하루에 대한 값을 빼면 된다. 하루는 24 * 60 * 60 초이며 millisecond 단위이므로 여기에 1000을 곱한다. 10시간 후는 24 대신 10을 넣으면 되고. 간단하다.

 

var today = new Date();
var today_ts = Date.parse(today);
console.log("today : " + today);

var yesterday_ts = today_ts - (60*60*24*1000);
var yesterday = new Date(yesterday_ts);
console.log("yesterday : " + yesterday);

var tomorrow_ts = today_ts + (60*60*24*1000);
var tomorrow = new Date(tomorrow_ts);
console.log("tomorrow : " + tomorrow);

 

결과

today : Sat Jul 31 2021 15:18:33 GMT+0900 (대한민국 표준시)
yesterday : Fri Jul 30 2021 15:18:33 GMT+0900 (대한민국 표준시)
tomorrow : Sun Aug 01 2021 15:18:33 GMT+0900 (대한민국 표준시)

 

만약, 각 값을 특정 값으로 바꾸고 싶다면 아래와 같이 할 수 있다. (ex. 오늘의 시작 시간, 0시 0분 0초로 변경)

var today = new Date();
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
var today_ts = Date.parse(today);
console.log("today : " + today);

 

결과

today : Sat Jul 31 2021 00:00:00 GMT+0900 (대한민국 표준시)

 

그 외 부분은 아래 참조

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date 

 

Date - JavaScript | MDN

JavaScript Date 객체는 시간의 한 점을 플랫폼에 종속되지 않는 형태로 나타냅니다. Date 객체는 1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차이를 밀리초로 나타내는 정수 값을 담습니다.

developer.mozilla.org

 

댓글