Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengendalikan Masa Penjimatan Siang dalam Medan Datetime MySQL?

Bagaimana untuk Mengendalikan Masa Penjimatan Siang dalam Medan Datetime MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-16 19:39:03717semak imbas

How to Handle Daylight Savings Time in MySQL Datetime Fields?

Mengendalikan Waktu Penjimatan Waktu Siang dalam Medan Waktu Tarikh MySQL

Apabila menggunakan medan datetime dalam MySQL, menentukan offset zon waktu boleh menimbulkan cabaran, terutamanya apabila berurusan dengan waktu penjimatan siang (DST).

medan datetime MySQL simpan cap masa secara langsung, tanpa menggunakan penukaran zon waktu. Ini bermakna cap masa mungkin samar-samar apabila disimpan dalam zon waktu yang memerhatikan DST. Sebagai contoh, "2009-11-01 01:30:00" boleh merujuk sama ada 01:30:00 sebelum atau selepas musim luruh "mundur".

Untuk menyimpan dan mendapatkan semula data masa dengan tepat di tengah-tengah peralihan DST , langkah berikut disyorkan:

  1. Gunakan DATETIME Medan:

    • Medan TIMESTAMP secara automatik menukar cap masa kepada UTC dan kembali, yang boleh menyebabkan perjalanan pergi balik yang hilang apabila menggunakan zon waktu dengan DST.
    • medan DATETIME, sebaliknya, simpan cap masa apa adanya.
  2. Tukar Zon Waktu Sebelum Simpan:

    • Untuk memastikan storan yang tepat, tukar cap masa daripada zon waktu sistem ke zon waktu bukan DST (cth., UTC) sebelum menyimpan ke pangkalan data.
  3. Tukar Zon Waktu Sebelum Mendapatkan:

    • Untuk mentafsir cap masa yang diambil dengan tepat, tukarkannya daripada zon waktu UTC kembali ke zon waktu sistem tempatan menggunakan fungsi luaran di luar MySQL (mis., strtotime() PHP atau Kelas DateTime).
  4. Elakkan Fungsi Matematik Tarikh/Masa MySQL:

    • Fungsi matematik tarikh/masa MySQL boleh tidak berfungsi sekitar sempadan DST apabila berurusan dengan cap masa yang disimpan dalam DST zon waktu.

Dengan mengikut langkah-langkah ini, anda boleh menyimpan dan mendapatkan semula data masa dalam MySQL dengan pasti, walaupun semasa berurusan dengan peralihan DST, memastikan cap masa direkodkan dan diwakili dengan tepat.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Masa Penjimatan Siang dalam Medan Datetime MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn