伺服器時間 |
|
zachary
更新時間:2010/7/25 下午 09:17:10 |
|
挑戰PHP5MySQL程式設計樂活學 08 php_dtfun2.php
為什麼我的伺服器時間是show格林威治時間,php_dtfun1.php也是show格林威治時間,但在javascript的網頁show的是伺服器時間
|
|
|
|
文淵閣工作室
更新時間:2010/7/26 上午 09:11:33 |
|
JavaScript 是 Client 端的語言,也就是他運作的地方,是瀏覽器端,所以它抓的是瀏覽器,也就是使用者目前瀏覽網頁的主機時間。 |
|
|
|
zachary
更新時間:2010/7/26 上午 09:39:26 |
|
php_dtfun2.php執行結果,書上show的是使用者目前瀏覽網頁的主機時間 如何show出主機時間 格林威治時間,對我來說,一點意義都沒有 |
|
|
|
文淵閣工作室
更新時間:2010/7/26 下午 12:43:42 |
|
書上範例是剛好主機與瀏覽器同一台啊! 所以上面呈列的是伺服器時間啊! |
|
|
|
zachary
更新時間:2010/7/26 下午 04:30:52 |
|
現在是用localhost本機在測試程式 所以伺服器主機和瀏覽器主機應該是同一台吧 我是覺得很奇怪,想知道哪裡設定有問題 |
|
|
|
文淵閣工作室
更新時間:2010/7/28 上午 10:38:58 |
|
所以如果您只需要您本機的伺服器時間, 就使用 date() 來取得資訊。 如果您要抓的是格林威治的時間, 就使用 gmdate() 來取得時間資訊。
如果您的程式很明顯主機就放置在目前您所在的時區,當然可以直接用 date() 來取得資訊時間, 但是如果您的主機放置在美國,伺服器本身用的是美國時區的時間, 但是你本身網站的使用人在台灣, 用 date() 函式取得的時間都會是美國時區的時間,而不是台灣的時間。
此時PHP程式就可以gmdate()來先取得一個基準的格林威治時間,再加上網站所在時區的差異,計算出該網站要使用來顯示的時間了。利如台灣的時間是格林威治時間加上8小時,您只要利用這個公式去計算所有的時間,那這樣的程式,無論你的程式放置主機所使用的時區為何,都會顯示台灣的時間。 |
|
|
|
zachary
更新時間:2010/7/28 下午 02:25:02 |
|
已經找到答案了 將php.ini的date.timezone 改成date.timezone=PRC 謝謝 |
|
|
|
文淵閣工作室
更新時間:2010/7/30 上午 09:21:26 |
|
這是一個解決方式, 不過這並不一定適合所有的伺服器來使用。 因為不是所有主機都允許你去更改它的 php.ini, 而且這個主機要支援 php5 才會有這個選項的。
所以如果您可以了解這二個函數的差異, 才是重要的。 |
|
|
|