首頁 > 後端開發 > php教程 > 為什麼我的 PHP ISO 日期正規表示式失敗,如何修復?

為什麼我的 PHP ISO 日期正規表示式失敗,如何修復?

Linda Hamilton
發布: 2024-12-29 12:22:10
原創
401 人瀏覽過

Why is My PHP ISO Date Regular Expression Failing, and How Can I Fix It?

為什麼我的 ISO 日期模式匹配失敗?

由於缺少前向,您提供的正規表示式無法正確匹配 ISO 樣式日期模式開頭和結尾處有斜線(“/”)。這些分隔符號在 PHP 的正規表示式語法中至關重要。更正後的模式應為:

/^(?P<year>[0-9]{4})-(?P<month>[0-9]{2})-(?P<day>[0-9]{2}) (?P<hour>[1-2]{1}\d{1}):(?P<min>[0-5]{1}\d{1}):(?P<sec>[0-5]{1}\d{1})$/
登入後複製

此模式定義了年、月、日、小時、分鐘和秒的六個捕獲組。

替代方法:使用DateTime Class

雖然可以選擇使用正規表示式,但更優雅的解決方案是使用PHP 的DateTime class:

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

此函數接受日期字串和可選格式。它使用 createFromFormat 方法建立一個 DateTime 對象,並檢查生成的對像是否有效並與原始日期匹配。

validateDate 函數提供了一種更強大、更通用的方法來驗證日期。它支援多種格式,並且可以驗證不同粒度等級的日期。

以上是為什麼我的 PHP ISO 日期正規表示式失敗,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板