DateTime默认为1970-01-01

时间:2014-02-20 19:58:55

标签: php mysql sql forms datetime

我正在为我的网站编写一个PHP表单。 HTML方面要求用户输入以MM / DD / YYYY格式输入的日期。当该字符串发送到PHP时,以下代码将其更改为MySQL将识别的形式

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

然而,当该日期输入我的MySQL数据库时,它输入为1970-01-01,我无法找出原因。

注意:如果我回显$ sqldate我得到错误使用未定义的常量sqldate - 假设'sqldate'在C:/ MYDIRECTORY

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

DateTime如何为您服务?

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

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

答案 2 :(得分:0)

这对我有用

$input_date= trim($_POST["input_date"]);
$strtotime= strtotime($input_date);
$date_format= date('Y-m-d',$strtotime);