PHP中如何處理時區
預設安裝的LAMP環境中,時區預設設定在GMT時間,所以一般得到的時間都會比我們電腦中顯示的時間早八個小時(假設你的時間設定正確,並且時區是在東八區)。PHP提供了兩個函式用來處理時區的操作:
date_default_timezone_set() 和 date_default_timezone_get()
如果我們希望更改伺服器預設的時區,修改 php.ini 檔案中的 ;date.timezone = ,新增自己需要的時區,例如 date.timezone = Asia/Chongqing,然後重啟伺服器就可以了。PHP支援的 timezone 的字串在參考資料[1]中可以看到。
用下面這一段程式碼,可以比較清楚的看到時區變化的影響:
$now = time();
echo “The GMT now is : ” . date(`Y-m-d H:i:s`, now()) . `<br />` ;
echo “The local time is : ” . date(`Y-m-d H:i:s`, gmt_to_local($now) ) . `<br />`;
date_default_timezone_set(`Asia/Chongqing`);
echo `Set the timezone to :` . date_default_timezone_get() . “<br />”;
echo “The GMT now is : ” . date(`Y-m-d H:i:s`, now()) . `<br />` ;
echo “The local time is : ” . date(`Y-m-d H:i:s`, gmt_to_local($now) ) . `<br />`;
如果我們的站點是面向單一時區的使用者,我想採用這個時區的時間來記載沒什麼問題,或者網站應用的型別並不 Care 時間的差別,那麼我們用什麼時間做儲存都沒關係。一旦我們的使用者對於時區的影響有較大關係的時候,我想應該統一使用GMT的標準時間來進行儲存,在顯示的時候再根據使用者所在的時區進行顯示,這樣雖然前端顯示每次都需要去計算使用者當前的時間,但是對於後臺邏輯的統一性應該是大有裨益的。
目前,我們國家已經廢除了夏令時的使用,但是世界上仍有其他一些國家在使用夏令時,我們在程式處理的時候應該注意這個問題,具體的資料可以參考 Daylight Saving。
參考資料:
1、List of Supported Timezones
2、Daylight Saving
相關文章
- PHP 時間處理PHP
- [工具]PHP 中的日期時間處理利器 – CarbonPHP
- [工具]PHP 中的日期時間處理利器 - CarbonPHP
- 如何在 PHP 中處理 Protocol Buffers 資料PHPProtocol
- Swift的時區處理Swift
- PHP中處理emoji表情PHP
- PHP超時處理全面總結PHP
- php訂單延時處理-延時佇列PHP佇列
- 使用 pytz 處理 Python 中的時區問題Python
- 角色設計中,如何區分處理主次關係?
- PHP-如何處理檔名亂碼PHP
- Java中對時間的處理Java
- PHP系列(五)PHP字串處理PHP字串
- PHP錯誤處理和異常處理PHP
- PHP 錯誤處理PHP
- php錯誤處理PHP
- PHP處理-微信支付PHP
- 如何利用Redis實現延時處理Redis
- oracle 表空間 不足時如何處理Oracle
- Java8中的時間處理Java
- ASP.Net中的時間處理ASP.NET
- Java中的任務超時處理Java
- 002——php字串中的處理函式(一)PHP字串函式
- sos:mysql中的auto_increment欄位在移植oracle時如何處理MySqlREMOracle
- [php]php錯誤處理機制PHP
- 如何批量處理word中的表格
- 一個簡單的 PHP 時間處理擴充套件PHP套件
- golang版carbon日期時間處理庫,PHP開發者的福利GolangPHP
- Java如何使用實時流式計算處理?Java
- php cli 中的使用curl 記憶體溢位時的正確處理辦法PHP記憶體溢位
- PHP 核心 - 異常處理PHP
- PHP 陣列 & 字串處理PHP陣列字串
- ctags 處理 PHP traitPHPAI
- php事務處理方法PHP
- PHP表單處理指南PHP
- PHP日誌處理類PHP
- 如何處理JavaScript 中的貨幣值?JavaScript
- django2中關於時間處理策略Django