Medan Masa Tarikh MySQL dan Masa Jimat Siang: Mengendalikan Jam Kabur
Medan waktu tarikh MySQL memberikan cabaran unik apabila berurusan dengan peralihan masa penjimatan siang, di mana satu jam muncul dua kali dalam sehari kerana peralihan masa. Kekaburan ini timbul kerana medan datetime menyimpan cap masa tanpa menyatakan secara eksplisit offset zon waktu.
Masalahnya:
Pertimbangkan senario berikut dalam zon waktu Amerika/New York:
Menyimpan "1:30 pagi" ke pangkalan data MySQL tanpa menyatakan offset mengakibatkan kekaburan:
Ini menimbulkan cabaran dalam menentukan 1:30 pagi yang dirujuk.
Penyelesaian: Memahami DATETIME dan TIMESTAMP
Bertentangan dengan kepercayaan popular, medan DATETIME dan TIMESTAMP berkelakuan secara berbeza dalam MySQL:
Terbaik Amalan: Menggunakan Medan DATETIME dengan UTC
Untuk menyimpan cap waktu dengan tepat semasa peralihan masa penjimatan siang hari, adalah disyorkan untuk menggunakan medan DATETIME dan nyatakan zon waktu UTC secara eksplisit. Ini membolehkan anda menukar cap masa kepada UTC sebelum menyimpan dan memastikan ia ditafsirkan dengan betul apabila diperolehi semula.
Langkah untuk Melaksanakan:
Apabila Mendapatkan semula Data:
Apabila Menyimpan Data:
Dengan mengikut langkah ini, anda boleh mengendalikan cap waktu samar-samar dengan tepat semasa penjimatan waktu siang peralihan dan memastikan integriti data anda.
Atas ialah kandungan terperinci Bagaimanakah Medan MySQL DATETIME Boleh Menangani Kesamaran Masa Jimat Siang dengan Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!