我正在为我的网站编写一个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
答案 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);