Days Since Counter 不接受未來的起始日期。這個工具只回答一個行事曆問題 ——從過去或現在某個指定日期算起,已經過了多少完整的西曆天數 ——當日期欄位包含的日期晚於本機裝置當地行事曆上的今天時,它會回傳拒絕結果。未來日期會被拒絕,而不是悄悄變成倒數計時,因此這個頁面永遠不會表現得像一個「距離某日還有幾天」的計時器。這項嚴格規則正是讓數字變得可預測的原因:儲存的起始日期永遠代表同一個里程碑意義,無論你之後在這台裝置上何時查看快照。如果你需要相反方向 ——倒數某個事件發生前還剩多少天、小時和分鐘 ——正確的做法是使用專門的倒數計時工具,而不是強迫這個計數器去做它並非設計用來做的工作。以下內容會詳細說明這個工具接受什麼、儲存什麼,以及如何使用 Days Since Counter 來完成它所設計的過去或現在任務。

「Days Since」的意義與為何拒絕未來日期
「days since」這個詞描述從一個固定錨點往前的測量。錨點就是你輸入的指定起始日期,測量值會隨著本機裝置上每過一個當地行事曆日而增長。因為數字只會一直增長,一個尚未到的起始日期要嘛會產生沒有意義的負值,要嘛會被悄悄翻轉成倒數模式 ——兩者都會改變這個數字對一週後查看同一個計數器的人所代表的意義。為了防止這種情況,頁面會拒絕任何晚於當地當天的起始日期。這種拒絕是一種保護機制而非限制,它保留了你在該里程碑名稱下儲存的每個快照的意義。
同一規則也適用於你隔了幾週或幾個月之後再回來使用這個工具。只要起始日期仍在過去或等於今天,顯示的天數就會持續反映一個清楚的問題:「已經過了多少完整的行事曆天數?」這個單一的問題正是讓儲存的紀錄對中立事件有用的原因,例如專案啟動、個人追蹤的週年紀念日、維護週期、例行變更,或是指定的等待期間。這個工具不會解讀里程碑的意義、不會發送提醒,也不會為你輸入的日期附加任何法律、財務、醫療或合約上的重要性 ——它只會計算。
在任何計算執行前的日期驗證機制
Days Since Counter 上的日期欄位接受 1900 至 9999 之間完整的四位數西曆年份,格式為 YYYY-MM-DD。頁面會在進行任何相減運算之前先驗證月份和日期,因此「2024-02-30」會被當作無效日期拒絕,永遠不會產生結果。二月會對照實際行事曆進行檢查,這代表 2 月 29 日只在閏年會被接受,而在每四年中的其他三年會被拒絕。
閏年檢查遵循 美國海軍天文台 所記載的西曆規則:能被四整除的年份是閏年,但世紀年例外,只有能被 400 整除時才是閏年。這就是為什麼 2000 年是閏年,但 1900 年不是。一旦各個欄位通過驗證,頁面會使用 ECMA-262 Date.UTC 公式將年、月、日轉換為 UTC 午夜時間戳記,再除以 86,400,000 毫秒以取得整數天數。你看到的結果就是兩個這種整數天數之間的差值 ——絕對不會是小數,也絕對不是以小時為單位的經過時間。
以 UTC 午夜進行運算正是為了避免在起始日期和快照日期之間碰到日光節約轉換時,顯示的計數偏移 23 或 25 小時。顯示本身仍會對應到你裝置的當地行事曆日,因此「儲存今天的快照」會記錄下你實際所在的那一天,但底層的相減運算則保持穩定不變。
如何使用 Days Since Counter 搭配過去或現在的起始日期
這個頁面設計為在單一裝置的單一使用階段中運作,因此以下步驟假設你在想要保留紀錄的瀏覽器中操作。
- 輸入簡短的里程碑名稱。選擇能清楚描述事件的內容 ——例如「Apartment renovation」、「New exercise routine」,或「Anniversary trip」。名稱會出現在本機歷史紀錄列表中,因此取個好讀的名稱可以省去日後的混淆。
- 選擇 YYYY-MM-DD 格式的起始日期。輸入完整的四位數年份、兩位數月份和兩位數日期。欄位接受從 1900-01-01 到 9999-12-31 之間任何通過月份、日期和閏年檢查的輸入。今天的日期可以使用;但任何晚於本機裝置今天的日期都不行。
- 儲存起始日期。確認輸入內容。頁面會讀取該日期與今天之間的整數天數差,並以西曆完整天數顯示。儲存動作也會在本地歷史紀錄中建立今天的第一個快照。
- 讀取顯示的計數。顯示的數字是「從起始日期算起已經過了多少完整行事曆天數」的答案,不是以小時為單位的經過時間,也不是倒數。
- 想要留下日期紀錄時就再儲存一次快照。在之後任何一次造訪時使用「Save today's snapshot」動作,就能在歷史列表中新增一列。每個快照都會標上拍攝當天的當地行事曆日期。
- 只在需要瀏覽器以外的檔案時才匯出。使用 PNG 匯出功能可取得一張 1080 乘 1350 的可分享最近快照影像,或使用 CSV 匯出功能取得一份可用試算表開啟的檔案,內含 Snapshot date、Start date 與 Days since 三個欄位。這兩種檔案都是透過原生的 canvas 與 Blob API 在本地產生。
當起始日期等於今天時會發生什麼
快照可能會顯示零天。這不是缺漏的值或錯誤 ——它是里程碑開始當天正確的行事曆答案。歷史列表會讓零天快照與之後的正數計數一起顯示,讓時間軸保持連續。如果你在儲存起始日期的同一天開始計數,然後隔天早上再回來,下一個快照會顯示一天、再隔一天顯示兩天,依此類推。從零開始觀察計數逐漸增加,通常是確認這個工具在你的裝置當地行事曆上正常運作最有效的方式。
工具接受與拒絕的輸入一覽
下表列出最常見的輸入以及頁面對各輸入的處理方式。內容雖然不涵蓋所有情況,但已包含產品合約中所有驗證規則所提到的情境。
| 輸入 | 範例 | 結果 |
|---|---|---|
| 過去日期(早於今天) | 2018-06-15 | 接受;顯示自該日期起算的完整天數 |
| 當地行事曆的今天 | today | 接受;記錄零天快照 |
| 未來日期(晚於今天) | 2027-01-01 | 拒絕;不計算、不記錄快照 |
| 超出範圍的年份 | 1850-05-10 | 拒絕;超出 1900–9999 範圍 |
| 無效的月份或日期 | 2024-02-30 | 拒絕;該月份與日期的組合不存在 |
| 閏年的 2 月 29 日 | 2024-02-29 | 接受;依 400 年規則正確計算天數 |
| 非閏年的 2 月 29 日 | 2023-02-29 | 拒絕;該日期不存在 |
跨越閏年界線的實作範例
產品合約中記載了這個確切的情境,讓計算方式可以對照已知結果進行驗證。以起始日期 2024-02-28 與 2024-03-01 拍攝的快照為例,頁面會回報兩個完整天數。
- 將 2024-02-28 透過驗證過的 YYYY-MM-DD 欄位轉換為 UTC 午夜的整數天數。
- 在同樣的 UTC 連續時間軸上,將 2024-03-01 轉換為其 UTC 午夜的整數天數。
- 將兩個整數相減。由於 2024 是閏年,兩個數值相差二,頁面會顯示 2。
非閏年的對應情況,2023-02-28 到 2023-03-01,會回報一天,這證實系統實際套用的是閏年規則,而非預設 28 天的二月假設。確切的紀元日數值來自瀏覽器的 UTC 運算;而規則及最終的天數結果才是合約所保證的內容。
為什麼在更換起始日期前要清除歷史紀錄
每個儲存的快照只有在搭配拍攝當時的起始日期下才有意義。如果你保留 2018-06-15 的起始日期並累積十二個快照,每一列都代表「自 2018-06-15 起算的天數」。在沒有清除歷史紀錄的情況下將該起始日期替換為較晚的日期,會悄悄改寫每一列早先記錄的意義,而這正是這個工具設計上要避免的「靜默變更」。因此一旦有快照存在,頁面會要求你在儲存不同的起始日期前先清除本地歷史紀錄。清除動作只需在同一部瀏覽器上按一個步驟;如果瀏覽器儲存空間無法使用,頁面仍然會顯示計算結果,但會告訴你無法保留快照,而在另一部瀏覽器上則會以空白的計數器開始。
如果你需要對未來事件進行倒數,請使用其他工具
Days Since Counter 不是倒數計時器。如果你真正的需求是「距離 X 發生還有多少天、小時和分鐘」,正確的做法是使用為該方向設計的工具。online countdown timer 可讓你設定任意的小時、分鐘和秒數,並在這台裝置上倒數至指定目標,這比較接近你原本可能想塞進 days-since 工具的工作流程。如果是進行中的實際計時,online stopwatch 會從按下按鈕的瞬間開始往上計數;如果是有重複手動事件的需求,online tally counter 則會以當地日期為單位,逐筆保留每次點擊的紀錄。這些工具各自接受本計數器刻意設計為不接受的輸入類型 ——一個尚未到的目標,或一段正在進行的作業。
Saving and Exporting Your Local History
Once the start date is saved, everything else is local browser data. The milestone name, the start date, and every snapshot are stored under one browser-storage key on this device only; they are not sent to Lizely, synchronized across devices, or joined to a profile. Clearing this site's browser data removes the record, which is the simplest way to start fresh for a new milestone. Exporting creates a file directly in the browser through native canvas and Blob APIs, so there is no upload queue and no account. The PNG export is a 1080-by-1350 summary that shows the total for the active local day and recent snapshots; the CSV export lists Snapshot date, Start date, and Days since on each row so a spreadsheet or archive can interpret every saved value without relying on a browser-only label.
If you want a single page that keeps the same milestone name, the same start date, and a growing history of dated snapshots — and you are confident the start date is in the past or matches today — the Days Since Counter is the tool to use. For anything that points forward instead of backward, pick a countdown or stopwatch tool instead so the numbers you record mean what you expect them to mean.
Related reading: Tally Counter Click Counter Online: Compare Side by Side.
Related reading: Does Auto Counter Run After You Close the Page?.
<