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
- Swift的時區處理Swift
- 使用 pytz 處理 Python 中的時區問題Python
- php訂單延時處理-延時佇列PHP佇列
- 角色設計中,如何區分處理主次關係?
- ctags 處理 PHP traitPHPAI
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Pandas中時間和日期處理
- Java中對時間的處理Java
- PHP 陣列 & 字串處理PHP陣列字串
- PHP 核心 - 異常處理PHP
- php表單處理-143PHP
- 如何利用Redis實現延時處理Redis
- 一個簡單的 PHP 時間處理擴充套件PHP套件
- Java中的任務超時處理Java
- Java8中的時間處理Java
- php cli 中的使用curl 記憶體溢位時的正確處理辦法PHP記憶體溢位
- PHP 多工協程處理PHP
- PHP 核心特性 - 錯誤處理PHP
- PHP (超文字前處理器)PHP
- PHP 多程式處理任務PHP
- 關於php rsa加密處理PHP加密
- Java如何使用實時流式計算處理?Java
- 鴻蒙Next應用國際化:時區與夏令時處理鴻蒙
- JSP 異常處理如何處理?JS
- Python中的時間處理大總結Python
- php 處理 浮點數 精度運算 數字處理等PHP
- selenium中JS如何處理滾動條JS
- 如何處理JavaScript 中的貨幣值?JavaScript
- 如何在 .NET Core WebApi 中處理 MultipartFormDataContentWebAPIORM
- gRPC 中的異常該如何處理?RPC
- golang版carbon日期時間處理庫,PHP開發者的福利GolangPHP
- java時間處理Java
- PHP 開發版本問題處理PHP
- PHP基礎:異常處理ExceptionPHPException
- php redis 處理websocket聊天記錄PHPRedisWeb
- PHP安裝後錯誤處理PHP