首頁 > 資料庫 > mysql教程 > 如何在 PHP 和 MySQL 中同步時區?

如何在 PHP 和 MySQL 中同步時區?

Susan Sarandon
發布: 2024-11-03 11:26:02
原創
269 人瀏覽過

How to Synchronize Timezones in PHP and MySQL?

同步PHP 和MySQL 中的時區

您正在開發一個需要使用PHP date() 函數在MySQL 中儲存日期的應用程式。有必要使用 NOW() 在 MySQL 中比較這些日期來計算時間差。但是,PHP date() 函數使用 PHP 中定義的時區,而 NOW() 使用 MySQL 伺服器中配置的時區。

為了解決這個問題,您嘗試了多種方法:

  • date_default_timezone_set('Europe/Paris') 僅影響 PHP。
  • date.timezone = "Europe/Paris" 與 PHP 保持隔離。
  • SELECT CONVERT_TZ(now(), ' GMT', 'MET') 傳回空結果。
  • mysql> SET time_zone = 'Europe/Paris' MySQL控制台提示錯誤。

最終MySQL時區維持不變。

解決方法

同步PHP 和MySQL 中的時區,無需手動控制台命令或修改php.ini:

PHP:

<code class="php">define('TIMEZONE', 'Europe/Paris');
date_default_timezone_set(TIMEZONE);</code>
登入後複製

MySQL:

<code class="php">$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins < 0 ? -1 : 1);
$mins = abs($mins);
$hrs = floor($mins / 60);
$mins -= $hrs * 60;
$offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);

// Assuming an existing DB connection named $db
$db->exec("SET time_zone='$offset';");</code>
登入後複製

這種方法確保PHP 和MySQL 使用相同的時區,消除日期儲存和比較方面的差異。此外,它消除了手動時區設定或修改全域設定檔的需要。

以上是如何在 PHP 和 MySQL 中同步時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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