我設好每天早上九點自動發文/扣款,結果全都在半夜跑,時間整個錯掉!
你設了排程要在特定時間自動執行(發文、扣款、寄信),上線後卻發現它全在錯的時間跑。這不是你時間填錯,你缺的詞叫『伺服器時區』——它用的時間,跟你以為的不一樣。這頁告訴你為什麼、怎麼一行設定講清楚。
先說結論:你的時間沒填錯——是那台幫你跑排程的電腦,用的是「別的時區」的時鐘。
情境:你想省事,設了一個自動排程——每天早上九點自動發一則貼文、或每月固定日期自動扣款、或某個時間自動寄提醒信。你興高采烈設好「早上 9:00」,收工。
隔天你一看紀錄——它在半夜三點跑了。 貼文在沒人看的深夜發出去、提醒信在客人睡覺時寄到、甚至扣款在凌晨執行(然後客人被半夜的扣款通知吵醒,跑來罵你,這又是另一個惡夢了)。
你困惑:我明明填的是 9 點啊,數字沒錯啊,怎麼會跑到半夜去?是我哪裡填錯了嗎?
你沒填錯 9 點。問題是——「9 點」是「哪裡的 9 點」?
你缺的詞 = 伺服器時區(你沒指定,它就用它自己的時鐘)
為什麼時間會「跑掉」?(人話版)
你的排程不是在你自己的電腦上跑,而是在一台放在雲端某處的伺服器上跑。而那台伺服器——它的時鐘,預設常常不是設成你的時區(很多雲端機器預設用的是「世界協調時間 UTC」,跟台北時間差了 8 小時)。
所以當你設「9 點執行」、卻沒有明確告訴它是「哪個時區的 9 點」時,它就會用它自己那台機器的時區來理解這個「9 點」。結果就是:你以為的台北早上 9 點,變成了那台機器所在時區的 9 點——換算回台北,可能就是半夜。
打個比方:你打電話跟一個在國外的朋友說「我們九點通話」。你心裡想的是你這邊的九點,他理解的是他那邊的九點——你們沒對過時差,結果一個大白天、一個大半夜,全錯開。你的排程跟伺服器之間,就是這種「沒對過時差」的誤會。
正確做法:設排程時「講清楚是哪個時區」
解法就一句話:設定排程的時候,明確指定時區——直接寫「台北時間(Asia/Taipei)」,別讓它用預設。
大多數排程工具都允許你額外指定時區。你把時區講死成 Asia/Taipei,然後直接用台北時間去寫執行時間(例如台北早上 9 點就寫 9 點)。這樣兩個好處:
- 它永遠在你要的當地時間跑,不管那台伺服器實際在地球哪個角落。
- 你腦子不用做時差換算——直接想「我要台北幾點」就好,不用在心裡默默 +8 −8 算得頭昏。
如果你是請 AI 或工程師幫你設排程,就明確交代一句:「時區要用台北時間 Asia/Taipei」,這個坑就避掉了。
⚖️ 誠實說清楚:這個坑最陰的地方是——它有時候「碰巧會對」。如果那台伺服器剛好被設成你的時區,你就完全不會發現有問題;直到哪天你換了主機、或服務商調整了預設,時間才突然全部跑掉,而你「明明什麼都沒改」。所以不要靠運氣——一開始就把時區指定清楚,是最省心的做法。尤其牽涉到扣款、寄信給客人這種會直接打擾到真人的排程,時間錯掉的代價很高,務必先驗證過再上線。
你會搜錯的關鍵字 vs 該搜的正確詞彙
| 你崩潰時會打的(搜不到) | 該搜的正確詞彙 |
|---|---|
| 「排程時間跑掉半夜執行」 | server timezone / UTC vs local time |
| 「定時任務時間不對」 | cron timezone option / Asia/Taipei |
| 「自動發文時間錯了」 | schedule timezone not set |
把右邊那欄丟進 Google。這就是我們在幹的事——把你崩潰時打出來的那句「怎麼跑到半夜」,翻譯成能找到答案的詞。
🎁 直接貼給你的 ChatGPT / Claude
這一段免費。複製、貼上、送出——先讓你的 AI 動起來。
我設定了自動排程(例如每天固定時間自動發社群貼文/自動扣款/自動寄信),但它實際執行的時間全都跑掉了,跟我設定的時間差了好幾個小時。請幫我: 1. 用白話解釋為什麼排程會在「錯的時間」執行,這跟「伺服器時區」有什麼關係。 2. 教我怎麼在設定排程時「明確指定時區」(例如台北時間 Asia/Taipei),而不是讓它用預設。 3. 給我一個檢查方法,確認我的排程真的會在我要的當地時間跑。
想更進一步?
上面免費的三層已經能讓你動起來。如果你想要「照著做不迷路」甚至「我們幫你跑好」——往下看。
- 免費 這個坑是什麼、誰會踩
- 免費 人話解釋:錯在哪、正確的詞彙
- 免費 一段可直接貼給 AI 的 prompt
本文首發於 AI 許願池(https://kaowan.pages.dev/articles/scheduled-tasks-run-at-wrong-time/),發佈日 2026年7月5日。 轉載請註明出處——原創者不怕考古,只有小偷怕。🕳️