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 數據類型,然后才將其發送到數據庫中?;蛘吣憧梢詫?quot;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 關注
- 93 瀏覽
添加回答
舉報