Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Regex Saya Tidak Memadankan Tarikh ISO dalam PHP?

Mengapa Regex Saya Tidak Memadankan Tarikh ISO dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-12-09 01:00:11661semak imbas

Why Isn't My Regex Matching ISO Dates in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn