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

자바스크립트(JavaScript)에서 에포크(Epoch) 이후의 시간과 날짜 구하는 방법

컴퓨터 세계에서 '에포크(Epoch)'는 1970년 1월 1일 00시 00분 00초(UTC)를 가리키며, 대부분의 프로그래밍 언어가 시간을 계산할 때 기준으로 삼는 시점입니다. 자바스크립트에서는 Date 객체가 제공하는 getTime() 메서드를 사용하면 에포크 이후 경과된 시간을 밀리초 단위의 숫자로 손쉽게 얻을 수 있습니다.

예제 코드

다음 예제는 현재 날짜와 에포크 기준으로 변환된 날짜를 함께 출력하는 방법을 보여줍니다.

<html>
   <head>
      <title>JavaScript Epoch Time</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);
      </script>
   </body>
</html>

실행 결과

Current Date: Mon May 28 2018 09:23:11 GMT+0530 (India Standard Time)
Since epoch: Sun Jan 18 1970 21:47:59 GMT+0530 (India Standard Time)

코드 살펴보기

  • new Date() – 현재 시점의 날짜와 시간 정보를 담은 Date 객체를 생성합니다.
  • getTime() – 에포크(1970년 1월 1일 00:00:00 UTC)부터 현재까지 경과한 시간을 밀리초 단위로 반환합니다.
  • getTime() / 1000 – 밀리초 값을 초 단위로 변환합니다. 이 값을 다시 new Date()에 전달하면 에포크 직후의 시점을 나타내는 날짜 객체가 만들어지기 때문에, 실행 결과에서처럼 1970년의 날짜가 출력됩니다.

참고: 타임스탬프 값만 필요한 경우

날짜 객체가 아니라 에포크 이후 경과 시간(타임스탬프) 값 자체가 필요하다면 아래처럼 작성하는 것이 더 간결하고 효율적입니다.

const timestampMs = Date.now();     // 밀리초 단위 타임스탬프
const timestampSec = Math.floor(Date.now() / 1000); // 초 단위 타임스탬프

Date.now()는 별도의 객체 생성 없이 현재 타임스탬프를 즉시 반환하므로, 단순히 시간 값을 비교하거나 저장할 때 널리 사용됩니다.