[英]How to check string on date in laravel?
如何在laravel中检查日期字符串?
我想处理字符串未日期的情况,例如“这不是日期字符串”。
我尝试使用此代码,但无法正常工作,我遇到下一个错误:
InvalidArgumentException : A two digit month could not be found
Data missing
我的代码:
if (Carbon::createFromFormat('m-d-Y', $rowMatrix[4]) !== false) {
//
}
您可以使用try / catch块 :
try {
$date = Carbon::createFromFormat('m-d-Y', $rowMatrix[4])
} catch(InvalidArgumentException $e) {
$date = 'Not a date';
}
但是更好的方法是使用Laravel验证date_format
规则来确保字符串是日期:
'some_date_field' => 'date_format:"m-d-Y"',
您可以将DateTime
用于此目的:
$dateTime = DateTime::createFromFormat('d/m/Y', $rowMatrix[4]);
$errors = DateTime::getLastErrors();
if (!empty($errors['warning_count'])) {
// Not a date
}
或者您可以像这样检查它:
if (date('Y-m-d H:i:s', strtotime($rowMatrix[4])) == $rowMatrix[4]){
// it's a date
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.