每個月 1 號早上,Futari 還活在上個月

約 3 分鐘

Futari 是給兩個人一起過日子用的家計簿。房租、餐費、小孩的花費一起記,每個月初打開,首頁會先給你們看這個月到目前為止花了多少、進來多少。

每個月 1 號早上,首頁給的卻是上個月的帳。

不是每天都這樣,只有每個月 1 號的前幾個小時。過了那段時間,一切又恢復正常。所以它藏了很久:我測試的時候,剛好都不是那幾個小時。

原因說穿了很簡單。Futari 的伺服器放在雲端,雲端主機預設用的是國際標準時間,比台灣慢 8 個小時。台灣已經是 1 號早上了,伺服器那邊還停在上個月的最後一天。首頁問伺服器「現在是幾月」,伺服器照它自己的時鐘老實回答,於是首頁拿到上個月。

修法是不要再問伺服器幾月,而是先換算成台灣的日子,再決定是哪個月。

過沒幾天,同樣的事在另一個地方又冒出來。Futari 有「定期」的功能,像每個月 5 號的房租、每個月 1 號的保費,時間到了會自動幫你們準備好那一筆,順便提醒一下。這個「時間到了」,用的也是伺服器的時鐘。所以在日期交界的那幾個小時,有些提醒可能早一天或晚一天,跟你們設定的「每月幾號」對不上。

兩個地方、兩個完全不相干的功能,錯在同一件事:「今天幾號」這個問題,答案要看你問的是誰。伺服器有它自己的今天,使用者也有他們的今天。大部分時候兩邊落在同一天,你根本不會發現它們不一樣,直到剛好卡在換日的那幾個小時。

對一本家計簿來說,月初是最常打開的時候:發薪、繳房租、看上個月花了多少。偏偏就是這幾個小時,它看錯了月曆。

我現在寫到任何跟「今天」「這個月」有關的地方,都會先問一句:這是誰的今天?

先不說了,我得把其他用到「今天」的地方也抓一遍,我很懷疑只有這兩個。

這段 code 寫於 2026 年 9 月 13 日至 15 日,文章整理於 2026 年 10 月。