繁体   English   中英

如何在laravel中检查日期字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM