如何在laravel中检查日期字符串?
我想处理这种情况,如果字符串没有日期,例如“它不是日期字符串”。
我尝试了代码,但它不起作用我有下一个错误:
InvalidArgumentException : A two digit month could not be found
Data missing
我的代码:
if (Carbon::createFromFormat('m-d-Y', $rowMatrix[4]) !== false) {
//
}
答案 0 :(得分:1)
您可以使用try/catch block:
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"',
答案 1 :(得分:1)
您可以将$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
}
或者您可以这样检查:
{{1}}