PHP と MySQL のタイムゾーンの同期
PHP date() 関数を使用して MySQL に日付を保存する必要があるアプリケーションを開発しています。 NOW() を使用して MySQL 内でこれらの日付を比較し、時差を計算する必要があります。ただし、PHP date() 関数は PHP で定義されたタイムゾーンを使用するのに対し、NOW() は MySQL サーバーで構成されたタイムゾーンを使用します。
この問題を解決するために、次のようなさまざまなアプローチを試みました。
最終的には、MySQL タイムゾーンはそのままになります。変更なし。
ソリューション
手動コンソール コマンドや php.ini の変更を行わずに、PHP と MySQL のタイムゾーンを同期します:
PHP:
define('TIMEZONE', 'Europe/Paris');
date_default_timezone_set(TIMEZONE);
MySQL:
$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins d', $hrs*$sgn, $mins);
// Assuming an existing DB connection named $db
$db->exec("SET time_zone='$offset';");
このアプローチにより、PHP と MySQL の両方が同じタイムゾーンを使用するようになり、日付の保存と比較における不一致が排除されます。さらに、手動でタイムゾーンを設定したり、グローバル設定ファイルを変更したりする必要がなくなります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3