JavaScript로 에포크 이후 경과 초(Seconds Since Epoch) 구하기
에포크(Epoch)란 1970년 1월 1일 00:00:00 UTC를 기준점으로 삼는 시간 표현 방식입니다. Unix 타임스탬프라고도 불리며, 다양한 시스템에서 날짜와 시간을 계산할 때 널리 사용됩니다.
JavaScript에서 현재 시각까지의 에포크 이후 경과 초를 구하려면 Date 객체의 getTime() 메서드를 활용합니다. 이 메서드는 밀리초 단위 값을 반환하므로, 1000으로 나누어 초 단위로 변환한 뒤 반올림해 주면 됩니다.
기본 문법
var anyVariableName = new Date();
Math.round(yourDateVariableName.getTime() / 1000);
구현 단계
먼저 현재 날짜와 시간을 담은 Date 객체를 생성합니다.
var currentDate = new Date();
다음으로, 밀리초 값을 1000으로 나누고 Math.round()로 반올림하여 에포크 이후 경과 초를 구합니다.
예제 코드
var currentDate = new Date();
var epochSeconds = Math.round(currentDate.getTime() / 1000);
console.log(epochSeconds);
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름이 demo67.js인 경우를 가정해 보겠습니다.
실행 결과
위 코드를 실행하면 다음과 같이 에포크 이후 경과 초가 출력됩니다.
PS C:\Users\Amit\JavaScript-code> node demo67.js
1594821507
참고 사항
Math.floor() 대신 Math.round()를 사용하면 반올림 오차가 발생할 수 있습니다. 정확히 지나간 초만 필요하다면 Math.floor(currentDate.getTime() / 1000)을 사용하는 것이 더 안전합니다. 또한 최신 JavaScript 환경에서는 간결하게 Math.floor(Date.now() / 1000)으로 한 줄로 작성할 수도 있습니다.