
「正確」對「自從那天起」計數器而言代表什麼
「自從那天起」計數器的正確讀數,是介於一個固定的過去日期與你查看時的本機日曆日之間,已完成的整數格里高曆日數。這個定義聽起來很簡單,但這正是重點所在:這個數字不是你記得要去手動累加的計數,也不是會在牆上時鐘午夜翻轉的 24 小時計時器。它是兩個經過驗證的 YYYY-MM-DD 日期之間的計算差異,顯示在裝置目前的本機日。Lizely 上的免費 「自從那天起」計數器 就是依照這個規則所打造的。給它一個簡短的里程碑名稱,選擇一個現在或更早的開始日期,頁面就會顯示自該日期以來,在本裝置目前的本機日曆日上已經過了多少整天。這個結果是私密的、即時的,而且可重現:相同的開始日期,在相同的本機日查看,永遠會顯示相同的數字,不需要帳號、不需要伺服器,也不需要上傳。
因此,「正確」意味著三件具體的事情:選擇一個工具實際會接受的開始日期、將顯示的數字視為日曆差異而非 24 小時的時長,以及謹慎地決定何時儲存快照或變更里程碑。從未使用過此類工具的讀者,常會假設它的行為像碼錶或「第一天、第二天」的心算計數。它並不是。這個計數器回答的是一個日曆問題,而本文其餘部分將說明那些讓這個答案保持誠實的具體輸入、規則與小習慣。
為何日曆日規則很重要(閏年、UTC 與日光節約時間)
「自從那天起」計數器必須被謹慎打造的原因,在於日曆日並非全都是 24 小時。在實行日光節約時間的地區,春季提前或秋季延後的那一天會是 23 或 25 小時長。如果計算時使用你當地時區的普通時間戳記相減,那麼兩個日曆日之間的差距,可能會依據你恰好挑選了哪兩天,而顯示為一天或三天。為了消除這種模糊性,「自從那天起」計數器會驗證你所輸入的四位數年份、月份與日期,包含格里高曆閏年規則,然後將兩個日期元件轉換為 UTC 午夜後再相減。
依據美國海軍天文台所記載的格里高曆閏年規則:可被四整除的年份是閏年,但世紀年例外,除非該世紀年同時可被 400 整除。這個工具在驗證日期時套用的正是這條規則。接著它使用 ECMA-262 規範中所描述的 Date.UTC 函式執行相減,該函式將每個日曆日表示為自 1970-01-01T00:00:00Z 起算的整數毫秒數,再除以 86,400,000。兩個 UTC 午夜之間的整天差異,不會受到任何當地日光節約時間變動的影響。
| 年份 | 可被 4 整除 | 可被 100 整除 | 可被 400 整除 | 依格里高曆規則為閏年 |
|---|---|---|---|---|
| 2024 | 是 | 否 | 否 | 是 |
| 2023 | 否 | 否 | 否 | 否 |
| 2100 | 是 | 是 | 否 | 否 |
| 2000 | 是 | 是 | 是 | 是 |
這正是為何顯示內容寫的是「日曆日」而非「經過時數」。一個實際算過的例子能讓這個差異變得顯而易見。在 2024-02-28 與 2024-03-01 之間,計算式為 (Date.UTC(2024, 2, 1) - Date.UTC(2024, 1, 28)) / 86,400,000 = 2 整天,因為 2024 年 2 月有 29 天。同樣的型態在 2023-02-28 與 2023-03-01 之間則讀為 1 天,因為 2023 年 2 月只有 28 天。日曆上的視覺間距看起來一模一樣,但計數相差一天,而一個忽略閏年規則的工具會悄悄地算錯。
選擇正確的開始日期與里程碑名稱
每個正確的讀數都始於一個精確的開始日期。日期欄位接受完整的 YYYY-MM-DD 值,包含四位數年份、兩位數月份與兩位數日期。支援的範圍是從西元 1900 年到西元 9999 年。任何超出該範圍的數值,或閏年規則認定不存在的日期(例如 2023-02-29),都會在計算執行前遭到拒絕,這能保護你不會得到一個無意義的數字,而非用零來掩飾。
其他兩項輸入規則與日期格式同樣重要。首先,開始日期必須是今天或更早。這個工具不會接受未來的日期,也不會悄悄變成倒數計時器;拒絕未來的值是一項刻意的設計選擇,否則同一個頁面就會回答兩個完全不同的問題。第二,給里程碑取一個簡短而具體的名稱。六個月後,「戒除咖啡因」會比「那件事」更有用,因為這個名稱會出現在快照紀錄與匯出檔案的語意中。這個名稱只會儲存在這個瀏覽器中;它不會被傳送到任何地方。
如何逐步取得正確的讀數
- 在瀏覽器中開啟「自從那天起」計數器頁面。不需要登入。
- 在名稱欄位中輸入簡短的里程碑名稱,例如「專案啟動」或「新作息」。
- 以完整的 YYYY-MM-DD 格式輸入開始日期,使用今天的日期或任何閏年規則能接受的更早日期。
- 儲存里程碑。頁面會驗證日期、將兩個日期元件轉換為 UTC 午夜、以整天相減,並顯示本裝置目前本機日的日曆日數。
- 將顯示的數字視為日曆日的差異,而非時數、分鐘數或碼錶的時長。
- 只有在你想為那個特定結果保留一份有日期的本機紀錄時,才點擊「儲存今日快照」。第一筆快照會在你儲存里程碑時自動建立。
- 當你需要瀏覽器以外的檔案時,可匯出 PNG 作為可分享的摘要圖片,或匯出 CSV 作為試算表友善的紀錄,其中包含快照日期、開始日期與自從那天起天數等欄位。
如果顯示的數字與你的預期不符,最常見的原因是輸入有誤。一份關於使用「自從那天起」計數器後如何檢查結果的指南,詳細說明了該驗證流程,包括對照書面日曆進行的快速合理性檢查。
在不重寫紀錄的前提下儲存快照
快照是計數器在特定的本機日上、針對特定開始日期所顯示內容的本機紀錄。它們不會自己向前跳動;它們是你選擇透過「儲存今日快照」按鈕所建立的帶日期條目。當里程碑的開始日期就是今天時,快照可以合理地讀為 0,而歷史清單會將這些零天的條目保持可見,而不是把它們隱藏為空白的列。
最關鍵的規則在於:一份已儲存的歷史屬於一個開始日期。如果你變更了開始日期,而此時快照已經存在,那麼舊的條目會在新的日期下被悄悄地重新詮釋,從而改寫它們的意義。為了防止這種情況,這個工具會要求你在替換已經有快照的開始日期之前,先清除本機歷史。因此,正確的習慣是:在開始下一個里程碑之前先完成目前的里程碑,或先將目前的歷史匯出為 CSV 再予以清除。這裡也是閱讀使用「自從那天起」計數器時應避免的常見錯誤這篇相關文章的好地方,因為「未清除歷史就變更開始日期」是最常見的單一錯誤。
如果瀏覽器儲存空間因故無法使用,顯示的計算結果仍然有效,但頁面會告訴你它無法保留快照歷史。這是刻意的設計:數學運算本身並不依賴儲存空間,因此即使在受嚴格限制的裝置上,也能隨時取得有用的讀數。
匯出值得信賴的紀錄
快照僅保存在這個瀏覽器中。當你需要瀏覽器以外的檔案時,匯出按鈕就是在不遺失脈絡的前提下搬移資料的正確方式。匯出 CSV 會產生一個簡單的檔案,包含三個欄位:快照日期、開始日期,以及自從那天起的天數。這種配置足以讓試算表或封存檔案解讀每一列,而無須依賴只能在瀏覽器中看到的標籤;如果你想在多個裝置間保留長期紀錄,這也是首選的格式。
匯出 PNG 會建立一張 1080 乘 1350 的摘要圖片,其中包含目前本機日的總計以及近期快照的列表。圖片特意不包含網址或你的自訂里程碑名稱,這限制了可分享檔案中的個人脈絡數量。這兩種匯出作業都是透過瀏覽器內部的原生 canvas 與 Blob API 完成,因此不涉及上傳佇列或伺服器端的日期服務。
| 輸出 | 格式 | 最適用於 | 包含的個人脈絡 |
|---|---|---|---|
| CSV | 快照日期、開始日期、自從那天起天數 | 試算表、長期封存、跨裝置紀錄 | 是(各列引用你儲存的開始日期與天數) |
| PNG | 1080 乘 1350 圖片 | 快速分享、視覺摘要 | 有限(不含網址,不含里程碑名稱) |
| 本機快照 | 僅限瀏覽器儲存空間 | 在本裝置上繼續同一個里程碑 | 是(儲存於 counter:days-since-counter 之下) |
這個工具不會跨越的界線
了解一個計數器刻意不做什麼,也是正確使用它的一部分。「自從那天起」計數器不會解讀里程碑的意義。它不會聲稱某個日期具有法律、財務、醫療或合約上的重要性。它不會發送通知,也不會變成未來事件的倒數計時器。它也不會在裝置間同步或連結個人檔案,因為在計算或匯出的過程中,並沒有帳號、伺服器端的日期服務,也沒有上傳佇列的參與。
對於上述任何其他需求,正確的工具是別的工具。需要精準的即時經過計時器(含分段計次)時,請使用 線上碼錶。需要記錄你本來會用手動計算的重複事件時,請使用 線上計數器。當你真正需要未來事件的計時器時,請使用線上倒數計時器。將「自從那天起」計數器用於它所回答的那個日曆日問題、且不多用,才能讓數字保持正確。