我需要强制用户输入这样的日期“ddmmYYYY”,例如:14012022
我面临的问题是我不能仅使用此格式来强制使用此格式:
DateTime::createFromFormat('dmY', '14012022');
例如,DateTime::createFromFormat('dmY', '212022')
对于“02012022”,它不会返回 false,尽管最后日期仍然是错误的。
有没有办法强制用户传递我期望的确切格式,即 "ddmmYYYY" ?
我需要 2 位数字代表一天,2 位数字代表月份,4 位数字代表年份。
谢谢
通过将日期转换回字符串来进行附加检查怎么样?
$inputDate = '212022';
$date = DateTime::createFromFormat('dmY', $inputDate);
$valid = $date && $date->format('dmY') == $inputDate;
既然说明书上说,
用于解析数字的字母允许范围很广的值,超出了逻辑范围。
因此像 '32132022' 这样的字符串是 的有效输入createFromFormat
,上述方法将帮助您避免此类日期字符串。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句