我周圍搜索,但找不到我正在尋找的東西。PHP`date()`與Unix`date`不同的是命令
我有一個PHP設置頁面,我的站點的管理員可以選擇一天中的一個小時來執行日常Cron作業腳本。在我的crontab
中,我的腳本每小時都在運行。當腳本運行時,它會檢查當前小時是否等於設置頁面請求的小時。
我這樣做的原因是因爲我完全無法想出一種方法來通過PHP編輯crontab
文件,儘管對主題進行了大量測試和研究。獎勵積分,如果你能幫助我找出一個辦法做到這一點。
我創建這個問題的真正原因是因爲我在使用Unix服務器的時候遇到了一些問題。當我在本地主機(IIS)上時,Cron腳本每小時執行一次,但是當我將所有內容移動到我的Unix亞馬遜機器上時,時間恰好是五個小時。
Cron作業仍然按照它應該每小時運行一次,但是當PHP腳本檢查當前時間(使用date("G")
)是否與設置時間匹配時,它不會像預期的那樣工作。當然,它最終會被處理五個小時太晚。
我不認爲這是一個巧合,我住在中央時區,這也恰好是五個小時,所以我幾乎肯定與它有關。
我可以寫一個解決方案,總是會將時間偏移五個小時,但這會導致我的日期字段不準確(我認爲),這有點類似。我寧願問一下,因爲我確信很多人都在閱讀這篇文章,並認爲我不知道答案是愚蠢的。
還有一件事:
我在腳本中有這行代碼。還有什麼我需要分享?
date_default_timezone_set('America/Chicago');
編輯:一個什麼樣的「修復」是將不勝感激的解釋。
可能重複:http://stackoverflow.com/questions/8244128/why-does-the-date-php-and-date-unix-does-not-match – zessx
其更好您計算UTC的一切。當您向用戶展示時,只需應用時區。 –
@samsamX感謝您的快速響應。我現在正在更多地考慮它。我也希望得到一些關於通過PHP來編輯Crontab的反饋。 –