0

当我尝试字符串替换日期并将其保存在mySQL数据库中时出现错误。原因是DATE字段的格式。我在下面添加了我的PHP代码和mySQL错误消息。

$nowDate = str_replace('/', '-', $_POST['datenow']); 

echo $nowDate;

输出 > 08-15-2012,我正在将此记录插入数据库,但MySQL数据库需要格式yyyy-mm-dd( 2012-08-15) 否则我会收到错误

Unable1 to run query:Incorrect date value: '08-15-2012' for column 'now_date' at row 1
4

3 回答 3

6

正如错误所指出的,日期的格式需要是yyyy-mm-dd.

date()您可以在使用and插入之前对其进行格式化strtotime()

$nowDate = date('Y-m-d', strtotime($_POST['datenow']));
于 2012-08-13T18:37:37.027 回答
3

尝试这个

$nowDate = date('Y-m-d',strtotime($_POST['datenow']));

或者更好的是,如果你只是想添加当前日期,让 MySQL 像这样为你做。这消除了清理输入数据的需要。

INSERT INTO table SET date_field = NOW();
于 2012-08-13T18:40:55.947 回答
0

所以有什么问题?您已经说过您知道 MySQL 需要某种格式,但想要使用不受支持的格式。如果你坚持使用你的“坏”格式,那么STR_TO_DATE()在你的插入查询中调查使用,或者将你的 PHP 字符串转换为有效的 MySQL 日期格式。

于 2012-08-13T18:38:32.783 回答