2014-02-20 45 views
-1

我正在为我的网站编写一个PHP表单。 HTML端会要求用户输入一个他/她/ MM/DD/YYYY格式的日期。当该字符串被发送到PHP下面的代码,变更成MySQL会认识DateTime默认为1970-01-01

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

然而,当该日期被输入到我的MySQL数据库则输入为1970-01-01,我不能形式找出原因。

注:如果我回声$ sqldate我得到了一个未定义常量sqldate的错误使用 - 假设 'sqldate' 在C:/ mydirectory中

+0

mySQL字段的类型是什么?时间戳? – 2014-02-20 20:00:02

+3

如果您的$ date变量为NULL,strtotime()将返回1979-01-01。打印您的$ date变量以确保它不为null,然后执行@Mostafa建议的操作。 – lxndr

+0

什么是你看到这种情况发生的'$ _POST ['date']'的样本值? –

回答

0

这个怎么样?

//build a date 
$date = date_parse_from_format("m/d/Y", $_POST["date"]); 
//output the bits 
$sqldate = "$date[year]-$date[month]-$date[day]"; 

Unix时间戳是自秒1970-01-01所以你要strtotime()调用返回0。

0

日期时间是如何工作的,你的号码?

<?php 
$dateStr = '08/18/2014';//$_POST['date']; 
$dateTime = new DateTime($dateStr); 
echo $dateTime->format('Y-m-d'); 

你在写这个表格的日期格式是MM/DD/YYYY。您是否验证输入值以确保始终给出格式?