2008/11/20

[Programming] 犯錯 + BUG ==> PHP5 計時亂掉

這個問題應該是只發生在 php5 上面的問題。

話說一個 php 計時的 script 發生了多了八個小時的問題,所以開始追蹤這個 bug ,結果發現到:
$ echo $TZ

$ cat /etc/php5/cli/php.ini|grep timezone
; Defines the default timezone used by the date functions
;date.timezone =
$ cat /etc/timezone
Asia/Taipei
$ echo "<? echo date_default_timezone_get(); ?>"|php
Asia/Chongqing

哇勒?!我明明系統設 Taipei 啊?幹嘛給我丟到對岸的中國去?這個應該是 php 的臭蟲吧?

再下
$ echo "<? echo time()%86400; ?>"|php
6210

... (恍然大悟) time() 回復的是 UTC 的時間。所以如果你是用 time() 來計算時間,在使用時就要注意,不能和帶有時區的函式一起使用。像是如果 time() 和 strftime 混用,那麼你計算出來的時間就會相差 8:00 (台灣的時差)。
張貼留言

[Linux] Private Key 不能登入的除錯方法與可能的問題點

最簡單的除錯方法是 $ ssh HOST -v 可能的問題點有: File/Dir Permission # 目錄是 700, 檔案是 600 Server 設定 RSAAuthentication yes PubkeyAuthentication yes...