取得 MySQL 目前的時區設定
確定 MySQL 伺服器的時區設定引起了使用者的一些困惑。與最初的假設相反,@@global.time_zone 和 @@session.time_zone 變數通常會傳回「SYSTEM」作為時區。但是,如果 MySQL 配置為利用系統的時區,則此回應提供的資訊很少。
檢索時區資訊
根據MySQL 手冊,以下內容指令可用於擷取目前的全球和客戶端特定時區:
mysql> SELECT @@global.time_zone, @@session.time_zone;
處理「SYSTEM」回應
如果MySQL傳回「SYSTEM」為時區,PHP 開發人員可以使用 date_default_timezone_get 取得系統所使用的實際時區。但是,請務必注意,PHP 可能在與 MySQL 資料庫不同的伺服器上運行,因此此假設可能並不總是成立。
考慮儲存的日期和時間值
請務必記住,MySQL 中的日期和時間值不包含時區資訊。因此,伺服器的時區設定僅會影響檢索目前時間的函數,例如 now() 或 unix_timestamp()。它不會影響資料庫中現有資料的儲存或解釋。
儲存時區資訊的重要性
為了確保準確處理日期和時間數據,建議以GMT(不遵守夏令時)儲存值,並根據需要將其轉換為所需的時區。這種方法消除了伺服器配置或夏令時轉換引起的潛在歧義。
以上是當@@global.time_zone回傳「SYSTEM」時,如何確定MySQL的實際時區設定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!