Mendapatkan Tetapan Zon Masa Semasa MySQL
Menentukan tetapan zon waktu pelayan MySQL telah mencetuskan beberapa kekeliruan di kalangan pengguna. Bertentangan dengan andaian awal, pembolehubah @@global.time_zone dan @@session.time_zone selalunya mengembalikan "SYSTEM" sebagai zon waktu. Walau bagaimanapun, jika MySQL dikonfigurasikan untuk menggunakan zon waktu sistem, respons ini memberikan sedikit pandangan.
Mendapatkan Maklumat Zon Masa
Menurut manual MySQL, perkara berikut arahan boleh digunakan untuk mendapatkan semula masa global dan masa khusus pelanggan semasa zon:
mysql> SELECT @@global.time_zone, @@session.time_zone;
Mengendalikan Respons "SYSTEM"
Jika MySQL mengembalikan "SYSTEM" sebagai zon waktu, pembangun PHP boleh mendapatkan zon waktu sebenar yang digunakan oleh sistem menggunakan date_default_timezone_get. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa PHP mungkin dijalankan pada pelayan yang berbeza daripada pangkalan data MySQL, jadi andaian ini mungkin tidak selalunya benar.
Pertimbangan untuk Nilai Tarikh dan Masa Disimpan
Adalah penting untuk diingat bahawa nilai tarikh dan masa dalam MySQL tidak termasuk maklumat zon waktu. Oleh itu, tetapan zon waktu pelayan hanya mempengaruhi fungsi yang mengambil masa semasa, seperti now() atau unix_timestamp(). Ia tidak mempengaruhi storan atau tafsiran data sedia ada dalam pangkalan data.
Kepentingan Menyimpan Maklumat Zon Masa
Untuk memastikan pengendalian data tarikh dan masa yang tepat, adalah disyorkan untuk menyimpan nilai dalam GMT (yang tidak mematuhi Masa Penjimatan Siang) dan menukarnya kepada zon waktu yang diingini mengikut keperluan. Pendekatan ini menghapuskan kemungkinan kekaburan yang timbul daripada konfigurasi pelayan atau peralihan Masa Penjimatan Siang.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Tetapan Zon Masa Sebenar MySQL Apabila @@global.time_zone Mengembalikan 'SYSTEM'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!