无法更新日期字段 - MySQL PHP

时间:2011-03-28 05:59:56

标签: php mysql datetime

我的网页有一个使用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

任何人都可以在这里指导我这个问题。

4 个答案:

答案 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"

CodePad

答案 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的日期函数格式化它。