倒數計時
設定目標日期與時區,面板每秒更新一次,顯示剩餘的年、月、日、時、分、秒。從過去日期也能正向計時。
目標時間預設是本地時區的午夜(00:00:00)。點選預設可立即套用;自訂日期請點選「設定目標」。
這個倒數工具能做什麼
設定一個未來的日期和時間(可選用其他時區),下方的面板就會每秒倒數一次,以年、月、日、時、分、秒顯示剩餘時間。同一個面板也支援「已過時間」——如果目標已過去,同樣的分解會從該事件開始正向計時。目標的 Unix 時間戳記也會一併顯示,方便你貼到行事曆邀請、cron 排程或資料庫記錄中。
距聖誕節、新年及其他週期性事件的天數
日期選擇器上方的預設按鈕涵蓋了人們最常想要倒數的搜尋。「下一個聖誕節」會把日期跳到目前時區 12 月 25 日午夜(如果今年的已過則跳到明年),「下一個新年」跳到 1 月 1 日,而「Y2038 溢位」則倒數到帶符號 32 位元 Unix 時間戳記回繞的時刻。每個預設只是一個日期標記——套用後你可以編輯它來微調時間或變更時區。
- 距聖誕節的天數:點擊「下一個聖誕節」,時區將預設為你的本地時間
- 距 2027 年的天數:在 2026 年 1 月 2 日當天或之後點擊「下一個新年」,即可取得 2027 年新年倒數
- 距發布的天數:輸入發布日期,並將時間設為上午 9:00(PT)或你的發布時段
- 距截止日期的天數:輸入截止日期;分解列可像一句話一樣用於狀態回報
倒數到 2027 年(或任意指定年份)
想要倒數到某個特定年份?在日期輸入框中輸入 2027-01-01,並把時間保留為你所在時區的 00:00:00——面板會顯示距該年在你所在地開始那一刻還有「X 天 Y 小時」。如果你需要為所有人倒數到同一時刻(例如一次協調一致的發布),請將時區設為 UTC,而不是保留本地時區。分解下方顯示的 Unix 時間戳記在每個時區都相同,正是這一特性使其具有可移植性。
選擇正確的時區
同樣的掛鐘日期和時間,在不同時區代表不同的時刻。對於本地慶祝的日子——生日、紀念日、除夕——的倒數,請保留瀏覽器偵測到的時區。對於全球公布的時刻——衛星發射、閏秒插入、合約截止——的倒數,請將時區設為公告所用的時區(通常是 UTC)。兩側的夏令時切換都會自動處理;底層的紀元值永遠不會偏移。
從過去的事件正向計時
如果目標已經過去,同一個面板就會變成「已過時間」計數器。這便於顯示「專案啟動以來 X 天 Y 小時」或「距上次生產事故的時間」。數字為正值,方向標記會切換為「目標已過去」,因此你無需改寫即可將分解內容複製到狀態頁面或發行說明中。
- 自 Unix 紀元開始以來的時間:將目標設為 1970-01-01 00:00:00 UTC
- 自某次軟體發布以來的時間:將目標設為該發布的 UTC 時間戳記
- 自某個個人里程碑以來的時間:將目標設為那一天在你所在時區的午夜
Y2038 —— 一個對軟體至關重要的真實倒數
「Y2038 溢位」預設倒數至 2038-01-19 03:14:07 UTC,即帶符號的 32 位元 Unix 時間戳記發生溢位的時刻。屆時仍在使用 32 位元 time_t 的程式都會回繞為代表 1901 年的負數。現代作業系統與語言執行階段已轉向 64 位元時間戳記;隱患往往潛藏在嵌入式韌體與老舊資料庫中。如果你正在稽核一批裝置,這個正在進行的倒數可作為報告中一個實用的關鍵數字。
在你自己的程式碼中嵌入倒數
無論使用哪種語言,演算法都相同:用目標紀元減去目前紀元,再將剩餘的時間分解為年/月/日/時/分/秒。本工具只將目標計算一次為 Unix 時間戳記,即時更新只是在每個間隔讀取 Date.now()。用下面的程式碼片段在你的技術堆疊中重現它——唯一棘手的是按日曆分解的部分(月份與年份長度不固定)。
- JavaScript: const left = target - Date.now(); const days = Math.floor(left / 86_400_000);
- Python: delta = target - datetime.now(timezone.utc); delta.days, delta.seconds
- Go: time.Until(target).Hours() / 24
- 對於按日曆分解,建議使用函式庫(luxon、date-fns、dateutil、java.time),而不是自己手寫月份計算