使用php将日期存储到mysql中

时间:2014-10-04 10:41:19

标签: php mysql

// 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

我是PHPMySQL的新手,我不知道为什么会这样。

2 个答案:

答案 0 :(得分:0)

date('Y-m-d',time()) 

可能就是你想要的;

答案 1 :(得分:0)

您在表单中使用哪种输入类型的日期?日期列仅接受今天的2014-10-4的Y-m-d值。如果您正在使用type="date",则应该可以直接使用。

的index.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,它就不会按日期在数据库中正确排序。