Membandingkan Tarikh dalam PHP: Panduan Teliti
Apabila bekerja dengan tarikh dalam PHP, anda mungkin menghadapi keperluan untuk membandingkan dua tarikh untuk menentukan susunan relatif mereka. Tugasan ini boleh mencabar, terutamanya apabila tarikh dibentangkan dalam format yang tidak konvensional seperti '03_01_12' dan '31_12_11'.
Penyelesaian: Menggunakan DateTime::createFromFormat
Untuk membandingkan tarikh dengan tepat dalam format yang tidak biasa, kami boleh menggunakan DateTime::fungsi createFromFormat. Fungsi ini membolehkan kami menentukan rentetan format tersuai untuk menghuraikan nilai tarikh ke dalam objek DateTime.
Kod berikut menunjukkan cara membandingkan tarikh dalam format yang diberikan:
$format = "d_m_y"; $date1 = \DateTime::createFromFormat($format, "03_01_12"); $date2 = \DateTime::createFromFormat($format, "31_12_11"); var_dump($date1 > $date2);
Pendekatan ini menghasilkan dalam nilai boolean yang menunjukkan sama ada $date1 lebih besar daripada $date2. Anda boleh menggunakan pernyataan var_dump untuk tujuan penyahpepijatan atau menggantikannya dengan logik yang sesuai dalam aplikasi anda.
strtotime() Pitfalls
Kod yang disediakan dalam soalan cuba digunakan strtotime(), yang biasanya digunakan untuk menukar rentetan tarikh yang boleh dibaca manusia kepada cap waktu Unix. Walau bagaimanapun, strtotime() menjangkakan tarikh dalam format piawai dan tidak boleh mengendalikan format tersuai seperti '03_01_12'. Menggunakan DateTime::createFromFormat mengatasi had ini dengan membenarkan anda menentukan format tepat tarikh yang dihuraikan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Tarikh dalam Format Bukan Konvensional dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!