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

时间:2018-03-02 09:32:50

标签: php laravel validation laravel-5 time

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

我想处理这种情况,如果字符串没有日期,例如“它不是日期字符串”。

我尝试了代码,但它不起作用我有下一个错误:

InvalidArgumentException  : A two digit month could not be found
Data missing

我的代码:

    if (Carbon::createFromFormat('m-d-Y', $rowMatrix[4]) !== false) {
//
}

2 个答案:

答案 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}}