首頁 >後端開發 >php教程 >為什麼我的正規表示式不符合 PHP 中的 ISO 日期?

為什麼我的正規表示式不符合 PHP 中的 ISO 日期?

Patricia Arquette
Patricia Arquette原創
2024-12-09 01:00:11652瀏覽

Why Isn't My Regex Matching ISO Dates in PHP?

我的模式與 ISO 樣式日期不符:為什麼?

嘗試使用正規表示式驗證 ISO 樣式日期時,您可能會遇到模式無法正確匹配的問題。這通常是由於在正規表示式中存在“/”字符,這在 PHP 中是必需的。

問題

使用正規時會出現問題表達式比對格式為「YYYY-MM-DD HH:MM:SS」的日期。如果正規表示式中存在“/”字符,PHP 將拋出錯誤,因為它希望使用“”對“/”字符進行轉義。

解決方案 - 使用 DateTime 類別

不要使用複雜的正規表示式,請考慮使用 PHP 中的 DateTime 類別。此類提供了一種簡單而可靠的方法來驗證日期。以下程式碼示範如何使用 DateTime 類別進行日期驗證:

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

透過指定預期格式,DateTime 類別可以準確驗證日期並傳回可靠的結果。

結論

對於 PHP 中的日期驗證,建議使用 DateTime 類,因為它是一個安全、方便且易於使用的類別。用於處理日期和時間的可擴展方法。

以上是為什麼我的正規表示式不符合 PHP 中的 ISO 日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn