Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 Epoch 이후 경과 일수 구하는 방법

JavaScript에서 Epoch 이후 경과 일수 계산하기

Epoch(에포크)는 1970년 1월 1일 00:00:00 UTC를 기준점으로 삼는 시간 표기 방식으로, 흔히 유닉스 시간(Unix Time)이라고도 불립니다. JavaScript에서 현재 날짜까지의 경과 일수를 구하려면 Math.abs() 메서드를 사용해 두 날짜 사이의 절대적인 차이를 먼저 구하고, 이어서 Math.floor() 메서드로 소수점 아래를 잘라 정수 형태의 일수를 얻으면 됩니다.

JavaScript에서 날짜 객체끼리 뺄셈을 하면 두 날짜의 차이가 밀리초 단위로 반환됩니다. 따라서 이 값을 1000으로 나누어 초 단위로 변환한 뒤, 하루가 86400초라는 점을 활용해 다시 86400으로 나누면 최종적으로 경과 일수를 계산할 수 있습니다.

예제 코드

<html>
   <head>
      <title>JavaScript Days Since Epoch</title>
   </head>
   <body>
      <script>
         var current_date, epocDate;

         current_date = new Date();
         document.write("Current Date: "+current_date);

         var epocDate = new Date(new Date().getTime() / 1000);
         document.write("<br>Since epoch: "+epocDate);
         var res = Math.abs(current_date - epocDate) / 1000;

         // 두 날짜 사이의 총 일수 구하기
         var days = Math.floor(res / 86400);
         document.write("<br>Difference (Days): "+days);
      </script>
   </body>
</html>

실행 결과

Current Date: Fri May 25 2018 15:42:43 GMT+0530 (India Standard Time)
Since epoch: Sun Jan 18 1970 21:44:03 GMT+0530 (India Standard Time)
Difference (Days): 17658

코드 동작 원리

1. 현재 날짜 생성: new Date()를 호출하여 현재 시점의 날짜와 시간 정보를 담은 객체를 만듭니다.

2. Epoch 기준 시간 계산: getTime() 메서드는 1970년 1월 1일 자정부터 경과한 시간을 밀리초 단위로 반환합니다. 이 값을 1000으로 나누면 초 단위 값이 되며, 이를 다시 Date 객체로 감싸면 epoch 기준 날짜를 얻을 수 있습니다.

3. 두 날짜의 차이 계산: Math.abs(current_date - epocDate)로 두 날짜 간의 차이를 밀리초 단위로 구한 뒤 1000으로 나누어 초 단위로 변환합니다.

4. 일수로 변환: 하루는 24시간 × 60분 × 60초 = 86400초입니다. 총 차이(초)를 86400으로 나눈 후 Math.floor()로 내림하면 완전히 지난 일수만 정확하게 남게 됩니다.

이처럼 몇 줄의 간단한 코드만으로도 특정 날짜가 Epoch로부터 며칠이 지났는지 손쉽게 확인할 수 있습니다. 이 방식은 날짜 간격 계산, 만료일 처리, 통계 집계 등 다양한 실무 상황에서 유용하게 활용됩니다.