Perwakilan Tarikh dalam PHP: Mengatasi Had 2038
Walaupun fungsi tarikh asli PHP mempunyai potongan pada tahun 2038, terdapat pendekatan alternatif untuk mengendalikan tarikh melebihi had ini. Salah satu pendekatan sedemikian ialah menyimpan tahun, bulan dan hari sahaja, tanpa mengambil kira komponen jam, minit, saat dan milisaat.
Dengan membuang komponen masa tambahan ini, anda mengembangkan julat tarikh yang boleh diwakili dengan ketara. Ini kerana setiap komponen ini mengambil sebahagian daripada perwakilan berasaskan milisaat yang digunakan secara dalaman oleh PHP.
Menggunakan Kelas DateTime
Untuk tujuan ini, anda boleh menggunakan kelas DateTime. Tidak seperti fungsi tarikh, DateTime mewakili komponen masa secara bebas. Ia menggunakan gabungan cap waktu Unix dan zon waktu untuk menyimpan dan menjejak tarikh.
$date = new DateTime(); $date->setDate(5000, 12, 31); echo $date->format('Y-m-d'); // Outputs "5000-12-31"
Pengiraan Tahun, Bulan dan Hari
Dengan kelas DateTime, anda boleh melakukan pengiraan pada komponen tahun, bulan dan hari secara individu. Contohnya, untuk menambah 100 tahun pada tarikh:
$date->add(new DateInterval(['y' => 100])); echo $date->format('Y-m-d'); // Outputs "5100-12-31"
Dengan menggunakan pendekatan ini, anda boleh melanjutkan pengiraan tarikh anda jauh melebihi had yang dikenakan oleh perwakilan tarikh lalai PHP. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kelas DateTime masih mengekalkan konteks zon waktu, jadi operasi yang melibatkan zon waktu atau perbandingan masa mungkin masih tertakluk kepada pengehadan 2038.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengatasi had 2038 untuk perwakilan tarikh dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!