Membandingkan Tarikh dalam PHP: Mengendalikan Hari Tidak Berlapik Sifar
Apabila membandingkan tarikh dalam PHP, adalah penting untuk mempertimbangkan tarikh yang disimpan dalam pangkalan data mungkin tidak mengikut format berlapik sifar (cth., "2011-10-2"). Ini boleh membawa kepada perbandingan yang tidak betul apabila menggunakan operator perbandingan tarikh standard.
Penyelesaian menggunakan strtotime()
Untuk tarikh selepas 1 Januari 1970, anda boleh menggunakan strtotime( PHP ) fungsi untuk membandingkan tarikh:
$today = date("Y-m-d"); $expire = $row->expireDate; //from database $today_time = strtotime($today); $expire_time = strtotime($expire); if ($expire_time < $today_time) { /* do Something */ }
strtotime() menukar rentetan yang mewakili tarikh dan masa ke dalam cap masa UNIX, yang mewakili bilangan saat sejak 1 Januari 1970. Ini membolehkan anda membandingkan tarikh dengan membandingkan cap masa mereka.
Penyelesaian menggunakan Kelas DateTime
Untuk PHP versi 5.2.0 dan ke atas, anda boleh menggunakan kelas DateTime untuk bekerja dengan tarikh:
$today_dt = new DateTime($today); $expire_dt = new DateTime($expire); if ($expire_dt < $today_dt) { /* Do something */ }
Kelas DateTime menyediakan set lengkap fungsi untuk bekerja dengan tarikh dan masa, termasuk pengendali perbandingan.
Pertimbangan Lain
Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Tarikh dengan Boleh Dipercayai dalam PHP, Terutamanya Yang Tidak Berlapik Hari Sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!