我需要強制用戶輸入這樣的日期“ddmmYYYY”,例如:14012022
我面臨的問題是我不能僅使用此格式來強制使用此格式:
DateTime::createFromFormat('dmY', '14012022');
例如,DateTime::createFromFormat('dmY', '212022')對于“02012022”,它不會回傳 false,盡管最后日期仍然是錯誤的。
有沒有辦法強制用戶傳遞我期望的確切格式,即 "ddmmYYYY" ?
我需要 2 位數字代表一天,2 位數字代表月份,4 位數字代表年份。
謝謝
uj5u.com熱心網友回復:
通過將日期轉換回字串來進行附加檢查怎么樣?
$inputDate = '212022';
$date = DateTime::createFromFormat('dmY', $inputDate);
$valid = $date && $date->format('dmY') == $inputDate;
由于手冊上說,
用于決議數字的字母允許范圍很廣的值,超出了邏輯范圍。
所以像 '32132022' 這樣的字串是 的有效輸入createFromFormat,上述方法將幫助您避免此類日期字串。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/492374.html
