Zon Masa dalam PHP dan MySQL
Mengintegrasikan sistem zon waktu ke dalam aplikasi PHP boleh mencabar, tetapi ia penting apabila mengendalikan data daripada berbeza zon waktu. Berikut ialah panduan komprehensif untuk menangani kebimbangan yang paling biasa dan menyediakan penyelesaian praktikal.
Menyimpan Datetimes dalam MySQL
Menukar Datetimes
Mengendalikan Masa Penjimatan Siang (DST)
MySQL tidak mengendalikan DST secara asli. Kelas DateTimeZone PHP menyediakan zon waktu bernama yang mengendalikan DST secara automatik berdasarkan lokasi pengguna, yang harus digunakan untuk cap masa yang dihadapi pengguna.
Migrasi Data Warisan
Jika sedia ada data telah dimasukkan tanpa mengambil kira zon waktu, gunakan fungsi CONVERT_TZ MySQL untuk membetulkan cap masa semasa pemilihan dan kemas kini. Sebagai alternatif, kemas kini cap masa dengan menukar kepada UTC dan kemudian kembali ke zon waktu tempatan.
Memilih Zon Waktu untuk Keutamaan Pengguna
Kod Contoh
<?php // Convert PHP datetime to UTC $utc = new DateTime('now', new DateTimeZone('UTC')); // Retrieve a list of named time zones $timezones = DateTimeZone::listIdentifiers(); // Convert to user's time zone (e.g., PST) $pst = new DateTimeZone('America/Los_Angeles'); $utc->setTimezone($pst); // Display converted timestamp echo "UTC: " . $utc->format('Y-m-d H:i:s') . "\n"; echo "PST: " . $utc->format('Y-m-d H:i:s') . "\n"; // Store user's time zone preference $userTimezone = 'America/Los_Angeles'; $query = "UPDATE users SET timezone = '$userTimezone' WHERE ..."; ?>
Nota: Adalah penting untuk menyimpan dan menukar cap masa secara konsisten untuk mengelakkan ketidakkonsistenan data dan kekeliruan pengguna. Dengan mengikuti garis panduan ini, anda boleh mengurus zon waktu dengan berkesan dalam aplikasi PHP dan MySQL anda.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Zon Masa dengan Berkesan dalam PHP dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!