「Days Since Counter」(自從某日起天數計算器)不接受未來的起始日期。這個工具是為回答單一曆法問題而打造的——自某個過去或當下的日期以來,已經過了幾個完整的格里高利曆天數——當日期欄位包含的日期晚於本機當前日曆上的今天時,它會回傳拒絕結果。比起將未來日期悄悄轉成倒數計時,工具選擇直接拒絕,因此這個頁面絕不會表現得像一個「距離某日還有幾天」的計時器。這項嚴格的規則正是讓它顯示的數字具有可預測性的原因:一個已儲存的起始日期,對於日後在本機拍下的每一張快照來說,都代表同一個里程碑。如果你需要反方向——倒數到某件事發生還剩幾天、幾小時、幾分鐘——正確的做法是使用專門的倒數計時工具,而不是勉強把這個計算器塞進它並非為此設計的角色。以下內容會完整說明這個工具接受什麼、儲存什麼,以及如何使用 Days Since Counter 來處理它所設計的過去或當下任務。

can i set a future start date when i use days since counter
can i set a future start date when i use days since counter

「自從」是什麼意思,以及為什麼未來日期會被拒絕

「days since」(自從……以來的天數)描述的是從一個固定的錨點向前測量。錨點就是你輸入的具名起始日期,而測量值會隨著本機日曆上每過一個當地日曆日而增長。由於數字只會持續增長,一個尚未到來的起始日期要不是會產生一個沒有意義的負值,就是會被迫悄悄翻轉成倒數模式——兩種情況都會在一週後改變這個數字對任何查看同一個計算器的人所代表的意義。為了防止這種情況,頁面會拒絕任何晚於本機當前日期的起始日期。這種拒絕是一種保護機制而非限制,它保留了你在那個里程碑名稱下儲存的每一張快照的意義。

當你過了幾週或幾個月再回到這個工具時,同樣的規則依然適用。只要起始日期保持在過去,或與今天相同,所顯示的天數就會持續反映一個明確的問題:「已經過了多少個完整的曆日?」正是這個單一的問題,讓儲存的紀錄對於中立事件來說非常實用,例如專案啟動、你個人在追蹤的週年紀念、保養週期、例行變更,或是你自己命名的一段等待期。這個工具不會詮釋里程碑代表什麼意義、不會發送提醒、也不會為你輸入的日期附加任何法律、財務、醫療或契約上的重要性——它只負責計算。

在任何計算執行之前的日期驗證機制

Days Since Counter 上的日期欄位接受從 1900 到 9999 的完整四位數格里高利年份,格式為 YYYY-MM-DD。頁面在進行任何相減運算之前會先驗證月份與日期,因此「2024-02-30」會因為無效日期而被拒絕,永遠不會產生結果。2 月會對照實際曆法進行檢查,這代表 2 月 29 日只有在閏年才會被接受,其他三年則會被拒絕。

年檢查遵循 美國海軍天文台所記載的格里高利規則:可被 4 整除的年份是閏年,但世紀年例外,只有可被 400 整除的世紀年才是閏年。這就是為什麼 2000 年是閏年,而 1900 年不是。一旦各個組成部分通過驗證,頁面會使用 ECMA-262 Date.UTC 公式將年、月、日轉換為 UTC 午夜的時間戳記,再除以 86,400,000 毫秒以取得整數日數。你看到的結果就是兩個這類整數日數之間的差值——絕對不會是小數,也不會是以小時為單位的經過時間。

在 UTC 午夜進行計算,正是用來防止當日光節約時間切換落在起始日期與快照日期之間時,顯示的計數偏移 23 或 25 小時。顯示本身仍會對應到本機的當地日曆日,所以「儲存今天的快照」會捕捉到你實際所在的那一天,但底層的相減運算則保持穩定。

如何使用 Days Since Counter 搭配過去或當下的起始日期

這個頁面設計為在單一裝置上、單次使用情境中操作,因此以下步驟預設你正在希望保留紀錄的那個瀏覽器中作業。

  1. 輸入簡短的里程碑名稱。選擇一個能直白描述事件的詞——例如「公寓翻修」、「新的運動習慣」或「週年旅行」。這個名稱會出現在本機紀錄列表中,所以選擇易讀的名稱日後可減少混淆。
  2. 選擇 YYYY-MM-DD 格式的起始日期。輸入完整的四位數年份、兩位數月份與兩位數日期。只要通過月份、日期與閏年檢查,欄位接受從 1900-01-01 到 9999-12-31 之間的任何日期。今天的日期是被允許的;在本機日曆上晚於今天的任何日期則不被允許。
  3. 儲存起始日期。確認輸入內容。頁面會讀取該日期與今天之間的整數日數,並以完整的格里高利曆日數顯示。儲存動作也會在本地紀錄中建立今天的第一張快照。
  4. 讀取顯示的計數。顯示的數字是「自起始日期以來已經過了多少個完整曆日」的答案,不是以小時為單位的經過時間,也不是倒數。
  5. 每當你想要留下日期紀錄時,再儲存另一張快照。在任何之後的造訪中,使用「儲存今天的快照」動作,即可為紀錄列表新增一列。每一張快照都會標註拍照當天的本機日曆日。
  6. 只有在需要瀏覽器以外的檔案時才匯出。使用 PNG 匯出可取得一張 1080 乘 1350 的可分享近期快照圖片,或使用 CSV 匯出取得一份可直接用於試算表的檔案,內含「Snapshot date(快照日期)」、「Start date(起始日期)」與「Days since(自起始日以來天數)」三個欄位。這兩種檔案都是透過原生的 canvas 與 Blob API 在本機產生。

當起始日期等於今天時會發生什麼

快照可以顯示零天。這不是缺漏值或錯誤——它是該里程碑開始當天的正確曆法答案。紀錄列表會將零天的快照與之後的正數計數一起保留,讓時間軸保持連續。如果你在儲存起始日期的同一天啟動計算器,隔天早上再回來,下一張快照會顯示一天,再過一天會顯示兩天,依此類推。看著計數從零開始攀升,通常是最能確認這個工具在你裝置的本機日下正常運作的方式。

這個工具接受與拒絕的內容一覽

下表列出最常見的輸入以及頁面對每種輸入的處理方式。它並非窮舉,但已涵蓋產品合約中提到的所有驗證規則案例。

InputExampleResult
過去日期(早於今天)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 為例,頁面會回報兩個完整天數。

  1. 使用通過驗證的 YYYY-MM-DD 組成部分,將 2024-02-28 轉換為 UTC 午夜的整數日數。
  2. 在同一條連續的 UTC 時間軸上,將 2024-03-01 轉換為其 UTC 午夜的整數日數。
  3. 將兩個整數日數相減。由於 2024 是閏年,兩個數值相差 2,頁面會顯示 2。

非閏年的對應案例,2023-02-28 到 2023-03-01,會回報一天,這證實了所使用的確實是閏年規則,而非固定 28 天的 2 月假設。確切的紀元日數來自瀏覽器的 UTC 計算;而這條規則以及所產生的天數才是合約所保證的內容。

為什麼在更換起始日期前要先清除紀錄

每一張已儲存的快照,唯有搭配拍攝當時的起始日期才具有意義。如果你保留 2018-06-15 的起始日期並累積了十二張每月快照,那麼每一列都代表「自 2018-06-15 起的天數」。在不清除紀錄的情況下,把那個起始日期換成較晚的日期,會悄悄改寫每一筆較早紀錄的意義,而這正是這個工具刻意要避免的那種悄悄變動。因此,當已經存在快照時,頁面會要求你先清除本機紀錄,才能儲存不同的起始日期。清除動作在同個瀏覽器中只需一個步驟;如果瀏覽器儲存空間無法使用,頁面仍會顯示計算結果,但會告訴你它無法保留快照,而在另一個瀏器中則會從空的計算器開始。

如果你需要倒數到未來事件,請使用其他工具

Days Since Counter 不是倒數計時器。如果你真正的需求是「距離 X 發生還有幾天、幾小時、幾分鐘」,正確的做法是使用為該方向打造的工具。線上倒數計時器可讓你設定任意的小時、分鐘與秒數,並在本機裝置上倒數至目標時間,這比較接近你可能試圖塞進 days-since 工具的工作流程。若要進行即時的經過計時,線上碼表會從按下按鈕的那一刻開始往上計數;若需要重複的人工事件紀錄,線上計數器則可依本機日日保留逐下點擊的紀錄。這些工具每一個都接受那種輸入——一個在你前方的目標,或是一段進行中的作業——而這正是這個計算器刻意設計為不接受的內容。

儲存與匯出您的本機歷史記錄

一旦起始日期儲存完成,其餘內容皆為本機瀏覽器資料。里程碑名稱、起始日期以及每一張快照都儲存在此裝置的單一瀏覽器儲存空間鍵值之下;它們不會被傳送到 Lizely、不會跨裝置同步,也不會連結到任何個人檔案。清除此網站的瀏覽器資料即可移除該紀錄,這也是為新里程碑重新開始最簡便的方式。匯出功能透過瀏覽器原生的 canvas 與 Blob API 直接建立檔案,因此沒有上傳佇列,也無需帳號。PNG 匯出為 1080-by-1350 的摘要,顯示作用中本機日期的總計與近期快照;CSV 匯出則在每一行列出 Snapshot date, Start date,與 Days since,方便試算表或封存檔在不依賴僅限瀏覽器的標籤下解讀每一筆儲存值。

如果您想要一個能保持相同里程碑名稱、相同起始日期,並持續累積帶日期快照紀錄的單一頁面——而且您確信起始日期在過去或就是今天——那麼 Days Since Counter 就是您要使用的工具。若需要的是指向未來而非過去的功能,請改用倒數計時器或碼錶工具,確保您記錄的數字代表您所預期的意義。

延伸閱讀:Tally Counter Click Counter Online: Compare Side by Side。

延伸閱讀:Does Auto Counter Run After You Close the Page?。