PHP插入查询 - 日期field 0000-00-00

时间:2013-09-11 22:03:44

标签: php date

我在插入带有日期字段的记录时遇到问题。无论我做什么,日期字段都存储为'0000-00-00'。该值以这种格式作为字符串进入php脚本: “2013年9月13日”。我正在使用strtotime转换为日期,然后尝试插入记录。这是代码。为什么我不能让这个工作?谢谢!

$my_date   = strtotime($_POST['d']);
//die(date("Y-m-d", $my_date)); //<--outputs just fine if I uncomment this
$sql = "INSERT INTO locations (id, my_date) VALUES ('$id', '$my_date')";
$result = mysql_query($sql);

2 个答案:

答案 0 :(得分:0)

  

我正在使用strtotime转换为约会

strtotime返回一个unix时间戳(整数),而不是日期字符串。在插入日期函数之前,您可以为MySQL格式化它:

$my_date = date('Y-m-d H:i:s', strtotime($_POST['d']));

或者,您可以使用DateTime类来实现此目的。

答案 1 :(得分:0)

另一个为我工作的解决方案:

$my_date = $_POST['my_date'];
if (empty($my_date))
    $my_date = "0000-00-00";

$sql = "INSERT INTO locations (id, my_date) VALUES ('$id', '$my_date')";
$result = mysql_query($sql);