開発 · 2分で読めます ·
Unix タイムスタンプは秒?ミリ秒?
毎週どこかで本番に出てしまう「13 桁」のバグと、2 つの単位を見分けるとてもシンプルなルール。

JavaScript はミリ秒、多くのバックエンドは秒で時刻を扱います。取り違えると、日付は 1970 年 1 月か、数万年先の未来に飛んでしまいます。
桁数を数える
現在のタイムスタンプは秒なら 10 桁です(1790000000 は 2026 年 9 月 21 日)。同じ瞬間はミリ秒で 13 桁、マイクロ秒で 16 桁、ナノ秒で 19 桁になります。
見分けるルール
絶対値が 10¹² より大きければミリ秒、そうでなければ秒とみなします。2001 年 9 月以降のミリ秒のタイムスタンプと、33658 年より前の秒のタイムスタンプなら、このルールで判別できます。
const ms = Math.abs(n) > 1e12 ? n : n * 1000;
単位は明示的に選ぶ
4Dev のタイムスタンプ変換ツールは推測しません。"Unix Timestamp" は秒、"Unix Timestamp (ms)" はミリ秒を意味し、マイクロ秒やナノ秒の形式も並んでいます。ISO 8601、RFC 2822、SQL DATETIME、Excel のシリアル日付を含め、全部で 33 の形式に対応しています。