PHP 和 MySQL 中的時區
整合時區系統可能很複雜,並且理解 PHP 和 MySQL 中的時區可能具有挑戰性。以下是幫助您有效瀏覽此主題的綜合指南:
在資料庫中儲存時區
始終使用 DATETIME,而不是 TIMESTAMP 在 MySQL 中儲存日期。 DATETIME 允許更大的粒度和靈活性。在將所有 PHP 時間戳記儲存到 MySQL 之前,將它們轉換為 UTC。您可以使用以下程式碼:
$dateUTC = new DateTime('2023-03-08 14:30:00', new DateTimeZone('UTC'));
從資料庫擷取時區
您可以使用下列程式碼從MySQL 擷取日期時間:
$dateRetrieved = new DateTime($row['datetime_column'], new DateTimeZone('UTC'));
轉換時間區域
將檢索到的日期時間轉換為顯示的使用者本地時區。這可以透過以下方式完成:
$localTime = $dateRetrieved->setTimeZone(new DateTimeZone('America/Los_Angeles'));
自動夏令時 (DST) 調整
將 DateTimeZone 與 DateTime 結合使用以獲得強大的功能。現代PHP 版本包含DateTimeZone 類,可用於根據使用者選擇的位置自動調整DST:
// This will be PDT right now, UTC-7 $la = new DateTimeZone('America/Los_Angeles'); $nowish->setTimeZone($la);
避免棄用的時區
使用命名時區而不是Etc /GMT... 時區。命名時區是更好的選擇,並且在未來的 PHP 版本中不會被棄用。
舊資料處理
用於處理沒有時區儲存的舊資料:
結論
了解 PHP 和 MySQL 中的時區需要仔細注意資料存儲,檢索、轉換。透過遵循此處概述的指南,您可以確保在 PHP/MySQL 應用程式中準確處理使用者特定的時區。
以上是如何有效管理 PHP 和 MySQL 應用程式中的時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!