JavaScript Unix 時間戳程式碼片段
JavaScript 範例,用於取得當前時間戳、將 Unix 秒或毫秒轉換為 Date 物件,以及用瀏覽器內建 API 格式化輸出。
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 紀元以來的毫秒數。需要毫秒時用 Date.now(),當 API 期望 Unix 秒時用 Math.floor(Date.now() / 1000)。
常見的 JavaScript 轉換
將以秒為單位的 Unix 時間戳記轉換為 Date 時,先乘以 1000 再呼叫 new Date()。UTC 輸出用 toISOString(),HTTP 風格輸出用 toUTCString(),需要特定時區時用 Intl.DateTimeFormat。
JavaScript 生產注意事項
JavaScript 時間戳記的 bug 通常來自把 Date 的毫秒和 API 的秒混在一起。把 Date 物件保留在 UI 邊緣,只有在單位明確後才透過 API 傳遞純數字或 ISO 字串。顯示本地時間時,使用帶具名時區的 Intl.DateTimeFormat,使結果在瀏覽器和伺服器之間可重現。
- 當你需要用於計時器、分析事件或瀏覽器儲存的紀元毫秒時,使用 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 型別,所以顯式值更便於除錯和比較。