我在下面有一个日期选择代码:
$(function() {
$( "#datepicker" ).datepicker({minDate: 0,
dateFormat: "dd-mm-yy"
});
});
正如您所看到的,在datepicker文本框中显示日期的格式('dateChosen')是'dd-mm-yy',就像这样(20-05-2012)。
但是当我尝试在“SessionDate”字段中插入日期,而不是在数据库中显示“2012-05-20”时,它会一直显示“0000-00-00”。为什么要这样做?
我想要的是文本框格式保持不变但是当日期插入到SessionDate表中时,我希望它插入为'2012-05-20'而不是'0000-00-00'。< / p>
下面是插入的代码($ _POST ['dateChosen']是发布日期的post方法):
$sql="INSERT INTO Session (SessionDate)
VALUES
(' ". mysql_real_escape_string( $_POST['dateChosen'] ) . "'
)";
mysql_query($sql);
答案 0 :(得分:2)
您的日期格式为dd-mm-yy
,因此日期的类型为:31-03-12
而不是31-03-2012
。 MySQL无法在其dateformat语法中接受该值。在插入查询中尝试此操作:
$sql = "INSERT INTO Session (SessionDate) VALUES(' " .
mysql_real_escape_string( date("Y-m-d", strtotime( $_POST['dateChosen'] ) ) ) . "')";
mysql_query($sql);
答案 1 :(得分:0)
或者你可以使用MySQL的STR_TO_DATE() -
$date = mysql_real_escape_string($_POST['dateChosen']);
$sql = "INSERT INTO Session (SessionDate) VALUES(STR_TO_DATE('$date', '%d-%m-%y'))";
mysql_query($sql);