检查字符串是否为有效日期

3

我该如何检查我的字符串是否为有效日期(“2018-01-01”)。

有没有简单的方法,还是我需要像这样做:

if (Carbon::createFromFormat('YOUR DATE FORMAT', $stringVariable) !== false) {
    // valid date
}

你应该使用DateTime类来检查这是否是一个有效的日期。 - undefined
1
你的日期格式总是那样吗?还是你想使用任意用户输入? - undefined
我正在使用一个日期选择器,所以它应该始终保持在那种格式下。 - undefined
1个回答

1
$timestamp  = strtotime($date);

return $timestamp ? $date  : null ;

虽然它适用于格式"2018-01-01",但值得记住的是对于其他日期格式,结果是错误的。例如,日期"13/10/2018"在格式"d/m/Y"下是一个有效的日期,但使用strtotime函数后,结果是错误的。 - undefined
1
@MagnoAlberto 格式d/m/Y不是一个有效的日期格式。如果分隔符是斜杠(/),则默认为美国的m/d/y格式;而如果分隔符是破折号(-)或点号(.),则默认为欧洲的d-m-y格式。 - undefined
请注意,$date = "2008年7月第一个星期六"; 这样的数值将被视为有效日期。https://www.php.net/manual/zh/datetime.formats.php - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接