1 回答
TA贡献1859条经验 获得超6个赞
用下一个替换你的函数:
public function valid_date($date, $format = 'Y-m-d') {
$d = new DateTime($date);
return $d && $d->format($format) === $date;
}
演示
或者与下一个:
public function valid_date($date, $format = 'Y-m-d') {
$d = DateTime::createFromFormat($format,$date); // <-- replace arguments
return $d && $d->format($format) === $date;
}
演示
DateTime::createFromFormat() 文档
您需要在成功验证后将此字符串转换为 DATE 数据类型,然后才将其发送到数据库中。或者你可以写"to_date($stringvar,$format)"在你的 SQL 查询中。
似乎 CodeIgniter 不喜欢验证选项中的默认变量。我的意思是,你不能声明$format = 'Y-m-d'为参数。所以,如果你不使用它,它会起作用:
public function valid_date_dmY($str)
{
$d = DateTime::createFromFormat('d.m.Y',$str);
return $d && $d->format('d.m.Y') === $str;
}
- 1 回答
- 0 关注
- 58 浏览
添加回答
举报