Pangkalan data menggunakan jenis medan datetime untuk merekod masa Bagaimana untuk menetapkan zon waktu pelayan, zon waktu mysql dan zon waktu PHP?
Pilihan 1.
Semua pelayan menggunakan zon waktu UTC secara seragam Program PHP menggunakan zon waktu UTC Masa jenis datetime yang ditulis kepada pangkalan data ialah UTC, dan ia dikeluarkan dan ditukar kepada zon waktu tempatan .
Pilihan 2.
Zon masa semua pelayan boleh ditetapkan sewenang-wenangnya, dan zon waktu program boleh ditetapkan sewenang-wenangnya Walau bagaimanapun, semua yang melibatkan penyimpanan masa menggunakan jenis int untuk menyimpan cap masa.
Mengapa anda tidak menetapkan pangkalan data anda kepada
Asia/Shanghai
zon waktu ini untuk php?Zon waktu pelayan mesti disatukan. Biasanya saya merekod cap masa dalam pangkalan data. Kerana saya rasa senang untuk mencari. Untuk lawatan rentas sempadan. Hanya lakukan pemprosesan yang sepadan semasa memformat cap waktu.
Hanya cap masa disyorkan
Akhirnya saya faham kenapa masa mesti ditanda masa Ternyata ia adalah kerana isu zon waktu. Walau bagaimanapun, kelas karbon dalam Laravel nampaknya telah menyelesaikan masalah ini. Anda boleh menukar format masa sesuka hati.
Tegasnya, tidak kira di mana anda berada di bumi, cap waktu pada bila-bila masa adalah sama. Contohnya, cap masa 1452783600 ialah 4 petang di Paris dan 7 pagi di San Francisco. Ini memberi manfaat kepada aplikasi dalam talian dan diedarkan pihak pelanggan untuk menjejak maklumat masa secara seragam.
+8 jam Selain itu, semua format masa paling baik disimpan dengan cap masa tidak akan mempunyai masalah zon waktu.
Tegasnya, tidak kira di mana anda berada di bumi, cap waktu pada bila-bila masa adalah sama.
1. Gunakan
datetime
,php/mysql时区设置为UTC+08
2.使用int,直接存时间戳,显示的时候再使用
date
untuk memformatnya