首頁 > 資料庫 > mysql教程 > 如何有效管理 PHP 和 MySQL 應用程式中的時區?

如何有效管理 PHP 和 MySQL 應用程式中的時區?

Mary-Kate Olsen
發布: 2024-11-09 02:17:02
原創
306 人瀏覽過

How Can I Effectively Manage Time Zones in PHP and MySQL Applications?

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 版本中不會被棄用。

舊資料處理

用於處理沒有時區儲存的舊資料:

  • 將 MySQL 連線時區更新為 UTC。
  • 使用 CONVERT_TZ函數以確保從資料庫中選擇時將時間戳轉換為 UTC。

結論

了解 PHP 和 MySQL 中的時區需要仔細注意資料存儲,檢索、轉換。透過遵循此處概述的指南,您可以確保在 PHP/MySQL 應用程式中準確處理使用者特定的時區。

以上是如何有效管理 PHP 和 MySQL 應用程式中的時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板