Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh menyegerakkan zon waktu PHP dan MySQL dalam aplikasi web saya tanpa mengubah suai konfigurasi pelayan?
Menyegerakkan Zon Waktu dalam PHP dan MySQL
Dalam aplikasi web, pengendalian nilai masa tarikh dengan tepat merentas zon waktu berbeza adalah penting. Walau bagaimanapun, tetapan zon waktu lalai PHP dan MySQL boleh berbeza, yang membawa kepada percanggahan dalam pengiraan tarikh. Artikel ini meneroka cabaran dalam menetapkan zon waktu dalam PHP dan MySQL serta menyediakan penyelesaian yang komprehensif tanpa mengubah suai konfigurasi pelayan.
Dilema: Zon Waktu Berbeza
Apabila menggunakan tarikh PHP () fungsi, seperti tarikh('Y-m-d H:i:s'), tetapan zon waktu PHP digunakan. Sebaliknya, fungsi NOW() MySQL menggunakan tetapan zon waktu pelayan MySQL. Ketidakpadanan ini boleh mengakibatkan perbandingan dan pengiraan tarikh yang salah.
Percubaan Yang Tidak Berjaya
Pemaju sebelum ini telah mencuba pelbagai kaedah untuk menukar zon waktu, termasuk:
Penyelesaian: Penyegerakan
Untuk menyegerakkan zon waktu PHP dan MySQL dalam aplikasi, pendekatan berikut disyorkan:
1. Konfigurasi Zon Waktu PHP
<code class="php">define('TIMEZONE', 'Europe/Paris'); date_default_timezone_set(TIMEZONE);</code>
Tentukan ZON WAKTU malar dan gunakannya untuk menetapkan zon waktu lalai untuk PHP.
2. Pengiraan Zon Waktu 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);
Kira offset antara masa pelayan dan zon waktu yang dikehendaki.
3. Tetapan Zon Waktu MySQL
<code class="php">// Your DB Connection - sample $db = new PDO('mysql:host=localhost;dbname=test', 'dbuser', 'dbpassword'); $db->exec("SET time_zone='$offset';");</code>
Lakukan pertanyaan untuk menetapkan zon waktu MySQL kepada offset yang dikira.
Dengan melaksanakan penyelesaian ini, zon waktu PHP dan MySQL dalam aplikasi akan disegerakkan , memastikan pengiraan dan perbandingan masa tarikh yang tepat tanpa mengira konfigurasi pelayan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyegerakkan zon waktu PHP dan MySQL dalam aplikasi web saya tanpa mengubah suai konfigurasi pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!