Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Regex Saya Tidak Memadankan Tarikh ISO dalam PHP?
Corak Saya Tidak Padan dengan Tarikh Gaya ISO: Mengapa?
Apabila cuba mengesahkan tarikh gaya ISO menggunakan ungkapan biasa, anda mungkin menghadapi masalah apabila corak gagal dipadankan dengan betul. Ini selalunya disebabkan oleh kehadiran aksara '/' dalam ungkapan biasa, yang diperlukan dalam PHP.
Masalahnya
Isu timbul apabila menggunakan biasa ungkapan untuk memadankan tarikh dalam format "YYYY-MM-DD HH:MM:SS". Jika aksara '/' hadir dalam regex, PHP akan membuang ralat kerana ia menjangkakan aksara '/' akan dilepaskan menggunakan ''.
Penyelesaian - Menggunakan Kelas DateTime
Daripada menggunakan ungkapan biasa yang kompleks, pertimbangkan untuk menggunakan kelas DateTime dalam PHP. Kelas ini menyediakan cara yang mudah dan mantap untuk mengesahkan tarikh. Kod berikut menunjukkan cara menggunakan kelas DateTime untuk pengesahan tarikh:
function validateDate($date, $format = 'Y-m-d H:i:s') { $d = DateTime::createFromFormat($format, $date); return $d && $d->format($format) == $date; }
Dengan menyatakan format yang dijangkakan, kelas DateTime boleh mengesahkan tarikh dengan tepat dan mengembalikan hasil yang boleh dipercayai.
Kesimpulan
Untuk pengesahan tarikh dalam PHP, adalah disyorkan untuk menggunakan kelas DateTime kerana ia adalah selamat, mudah, dan kaedah yang boleh diperluaskan untuk bekerja dengan tarikh dan masa.
Atas ialah kandungan terperinci Mengapa Regex Saya Tidak Memadankan Tarikh ISO dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!