Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah regex PHP saya gagal mengesahkan format tarikh ISO?

Mengapakah regex PHP saya gagal mengesahkan format tarikh ISO?

Patricia Arquette
Lepaskan: 2024-12-15 11:50:11
asal
411 orang telah melayarinya

Why is my PHP regex failing to validate an ISO date format?

Regex Gagal Mengesahkan Format Tarikh ISO

Soalan:

Mengapa tidak mengikut ungkapan biasa, bertujuan untuk memadankan tarikh gaya ISO, berfungsi sebagai dijangkakan?

if(preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/', $date) >= 1)
    // ...
Salin selepas log masuk
Salin selepas log masuk

Jawapan:

Walaupun ungkapan biasa itu sendiri sah, isu di sini terletak pada penggunaan garis miring ke hadapan " /" sebagai pembatas. PHP memerlukan petikan berganda " atau petikan tunggal ' sebagai pembatas untuk ungkapan biasa, bukan garis miring ke hadapan.

Untuk membetulkan isu ini, gantikan garis miring ke hadapan dengan petikan berganda:

if(preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/', $date) >= 1)
    // ...
Salin selepas log masuk
Salin selepas log masuk

Sekarang yang biasa ungkapan akan sepadan dengan tarikh gaya ISO dengan betul.

Kelebihan Menggunakan DateTime Kelas:

Walaupun ungkapan biasa yang diperbetulkan akan mengesahkan tarikh ISO, kelas DateTime patut dipertimbangkan untuk pengesahan dan manipulasi tarikh dan masa Kelas DateTime adalah lebih komprehensif dan boleh mengendalikan pelbagai tarikh dan format masa.

Contoh berikut menunjukkan cara menggunakan kelas DateTime untuk mengesahkan tarikh gaya ISO:

function validateDate($date, $format = 'Y-m-d H:i:s')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapakah regex PHP saya gagal mengesahkan format tarikh ISO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan