我的网页有一个使用javascript日历的日期字段。网页上日期字段的格式为MM / DD / YYYY。当用户输入所有信息并点击提交时,除了相应的日期字段之外的所有字段都会更新。以下是详细信息:
HTML:
<tr>
<td><label><font color="red">*</font>Date:</label></td>
<td><input name= "Date" value="Select Date" id="popupDatepicker"></td>
</tr>
PHP代码:
<?php
$sql = "INSERT INTO MYTABLE (...., USER_DATE, ...) VALUES (...., '$_POST[Date]', ...)"
....
?>
MySQL:USER_DATE: DATETIME datatype.
当插入新记录时,即使在UI端填充了日期字段,USER_DATE也会显示0000-00-00 00:00:00
。
任何人都可以在这里指导我这个问题。
答案 0 :(得分:8)
MM/DD/YYYY
不是MySQL使用的日期时间格式。
试试这个......
date('Y-m-d', strtotime($date));
$date = '02/07/2011';
$sqlDate = date('Y-m-d', strtotime($date));
var_dump($sqlDate); // string(10) "2011-02-07"
答案 1 :(得分:3)
将日期插入MySQL日期时间字段时,您必须使用YYYY-MM-DD
格式。
作为旁注:您必须使用mysql_real_escape_string()
或mysqli_real_escape_string()
来转义字符串,具体取决于您使用的函数集,以防止SQL Injections!
答案 2 :(得分:1)
提交表单后更改日期格式。
Mysql接受yyyy-mm-dd
格式的日期
echo date('Y-m-d',strtotime($_POST['date']));
答案 3 :(得分:1)
如果您不想使用标准DATETIME
格式yyyy-mm-dd hh:mm:ss
,则可以使用TIMESTAMP
这是一个整数,其中包含自Jan 01, 1970
以来经过的秒数或您也可以使用VARCHAR
插入所需内容。
我的意见是去TIMESTAMP
,因为之后您可以使用php的日期函数格式化它。