// some code
date_default_timezone_set('Asia/Kolkata');
$datetime = new DateTime("now");
// result: 4th October, 2014. 3:35 PM
$datetime->format("jS F, Y. g:i A");
$value = $_POST['Cfname'];
$value2 = $_POST['Csubject'];
$value3 = $_POST['Cemail'];
$value4 = $_POST['Cmessage'];
$datetime = $_POST['Ctime'];
$sql = "
INSERT INTO query
(Cfname, Csubject, Cemail, Cmessage, Ctime)
VALUES
('$value', '$value2', '$value3', '$value4', '$datetime')
";
提交表单后,一切正常,但日期列除外,它被存储为0000-00-00
而不是我指定的格式,并得到错误为:未定义的索引:Ctime
我是PHP
和MySQL
的新手,我不知道为什么会这样。
您在日期表单中使用哪种输入类型?日期列将仅接受 Y-m-d 的值,即今天的值为 2014-10-4。如果您使用的是 type="date"
,它应该开箱即用。
索引.php:
<?php
$datetime = new DateTime();
?>
<form action="insertSql.php" method="POST">
<input name="Ctime" type="date" value="<?php echo $datetime->format('Y-m-d') ?>">
</form>
如果您希望默认日期为今天,则只需输入value="<?php echo $datetime->format('Y-m-d') ?>"
。
insertSql.php:
<?php
$datetime = $_POST['Ctime'];
$sql = "INSERT INTO query (Ctime) VALUES ('$datetime')";
?>
如果您想输入日期(如 2014 年 10 月 4 日(,您可以使用 varchar 列,但请注意,如果您使用 varchar,它将无法在数据库中按日期正确排序。
date('Y-m-d',time())
可能是你想要的;