如何判断一个日期正确呢?
背景
从 Excel 导入数据判断日期的时候,有条数据绝对符合日期格式,但是遇到了 2022-02-30
这样的日期。
暂解决方案
把日期转换一下,如果和原来的数据不一致,就可以判断日期不对,代码如下:
/**
* 判断时间是否正确
*
* 为修复 2022-02-30
* @param $timeStr
* @return bool
*/
private function timeCheck($timeStr): bool
{
// date 后的日期会是 2022-03-02
return date('Y-m-d', strtotime($timeStr)) == $timeStr;
}
潜意识里感觉 有轮子有更好的方法,可能 Carbon 已经有对应方法了,不过当前没时间详看文档。
后续
Laravel 中可以这样实现
利用表单验证提供的能力,该方法对于日期 02 之类的也能验证(由 @chutrue 提供)
public function timeCheck($timeStr): bool
{
return validator(
['timeStr' => $timeStr],
['timeStr'=> 'bail|required|date']
)->fails() != true;
}
推荐文章: