Apabila bekerja dengan medan datetime dalam MySQL, adalah penting untuk mempertimbangkan kesan penjimatan siang hari masa (DST). Seperti yang ditunjukkan oleh kajian kes, peralihan daripada masa standard kepada DST boleh membawa kepada perwakilan masa yang tidak jelas, terutamanya apabila menyimpan data dalam zon waktu yang memerhatikan DST.
2009-11-01 01:30:00 -04:00 vs. 2009-11-01 01:30:00 -05:00
Kedua-dua DATETIME dan jenis medan TIMESTAMP memberikan cabaran dalam mengendalikan data dengan tepat dalam zon waktu pemerhatian DST. Medan DATETIME tidak mengendalikan DST secara dalaman, manakala medan TIMESTAMP secara automatik menukar data ke dan dari UTC, dengan mengandaikan ia berada dalam zon waktu tempatan sistem, yang boleh menyebabkan kehilangan data semasa penukaran pergi balik jika DST menjadi faktor.
Untuk menangani isu ini, adalah disyorkan untuk menyimpan data waktu tarikh dalam zon waktu bukan DST, seperti UTC. Ini membolehkan anda mengawal logik penukaran di luar MySQL dan menyimpan secara eksplisit bersamaan UTC yang dimaksudkan dengan waktu tempatan yang anda ingin wakili.
Apabila mendapatkan semula data daripada pangkalan data, pastikan anda tafsirkannya sebagai UTC di luar MySQL menggunakan fungsi seperti strtotime() atau kelas DateTime PHP. Ini menyediakan cap waktu Unix yang tepat, mengelakkan kekaburan.
Sebelum menyimpan data dalam pangkalan data, tukarkannya kepada masa UTC yang diingini secara luaran menggunakan kelas DateTime PHP atau mekanisme serupa. Tentukan waktu tempatan dan zon waktu secara eksplisit untuk memastikan perwakilan UTC yang betul disimpan ke medan DATETIME.
Ingat bahawa fungsi matematik tarikh/masa MySQL mungkin tidak berfungsi dengan betul di sekitar sempadan DST jika data disimpan dalam zon waktu DST. Oleh itu, menyimpan data dalam UTC adalah penting untuk pengiraan yang boleh dipercayai.
Atas ialah kandungan terperinci Bagaimanakah Medan Datetime MySQL Boleh Mengendalikan Masa Penjimatan Siang dengan Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!