JavaScript Unix 타임스탬프 스니펫
현재 타임스탬프 가져오기, Unix 초 또는 밀리초를 Date 객체로 변환, 브라우저 내장 API로 출력 포맷을 하는 JavaScript 예제.
Current Unix timestamp (seconds)
Math.floor(Date.now() / 1000)Current Unix timestamp (milliseconds)
Date.now()Timestamp from a Date object
new Date().getTime()
// or
+new Date()Date object from Unix timestamp (seconds)
new Date(1700000000 * 1000)ISO 8601 string from timestamp
new Date(1700000000 * 1000).toISOString()
// → "2023-11-15T06:13:20.000Z"Formatted local string
new Date(1700000000 * 1000).toLocaleString()
new Date(1700000000 * 1000).toLocaleString("en-US", { timeZone: "America/New_York" })JavaScript 타임스탬프 기본
JavaScript Date는 시간을 Unix epoch 이후의 밀리초로 저장합니다. 밀리초가 필요하면 Date.now()를, API가 Unix 초를 기대하면 Math.floor(Date.now() / 1000)을 사용하세요.
흔한 JavaScript 변환
초 단위 Unix 타임스탬프를 Date로 변환할 때는 new Date()를 호출하기 전에 1000을 곱하세요. UTC 출력에는 toISOString(), HTTP 스타일 출력에는 toUTCString(), 특정 시간대가 필요하면 Intl.DateTimeFormat을 사용하세요.
JavaScript 운영 참고 사항
JavaScript 타임스탬프 버그는 보통 Date의 밀리초와 API의 초를 섞어 쓰는 데서 생깁니다. Date 객체는 UI 가장자리에 두고, 단위가 명확해진 뒤에만 API를 통해 순수한 숫자나 ISO 문자열을 전달하세요. 현지 시각을 표시할 때는 브라우저와 서버 간에 결과가 재현되도록 이름이 지정된 시간대와 함께 Intl.DateTimeFormat을 사용하세요.
- 타이머, 분석 이벤트, 브라우저 저장소에 epoch 밀리초가 필요하면 Date.now()를 사용
- 백엔드 엔드포인트가 Unix 초를 기대하면 Math.floor(Date.now() / 1000)을 사용
- API가 초를 보내면 new Date(seconds * 1000)을 사용
- JSON으로 왕복할 수 있는 UTC 문자열에는 toISOString()을 사용
관련 JavaScript 참고 자료
FAQ
- Date.now()는 Unix 초를 반환하나?
- 아니요. Date.now()는 밀리초를 반환합니다. API, 데이터베이스, 명령줄 도구가 Unix 초를 기대하면 1000으로 나누고 내림하세요.
- Date 객체를 JSON에 저장해야 하나?
- 아니요. 먼저 값을 숫자나 ISO 8601 문자열로 변환하세요. JSON에는 네이티브 Date 타입이 없으므로 명시적 값이 디버깅과 비교가 더 쉽습니다.