如何在PHP中提交表单时添加日期和时间?

时间:2015-11-18 17:27:26

标签: php mysql date time

我在php中建立了一个评论系统,可以存储评论,电子邮件和用户名,但我还想在我的数据库中添加2个字段,名为 time - date 存储用户自动提交表单的日期和时间!我搜索了很多,但我找不到任何有用的文章。 如果你能知道如何做到这一点,请帮助我,我将不胜感激!

这是我的代码:

<form action='comment.php' method='POST'>
    <span>
        <input type='text' name='name' placeholder='Your Name'/>
        <input type='email' name='email' placeholder='Email Address'/>
    </span>
        <textarea name='' name='comment' placeholder='Comment'></textarea>
        <input name='submit' type='submit' value='Submit'></input>
        <p><?php if(isset($errors['name1'])) echo $errors['name1']; ?></p>
        <p><?php if(isset($errors['name2'])) echo $errors['name1']; ?></p>
        <p><?php if(isset($errors['email1'])) echo $errors['name1']; ?></p>
        <p><?php if(isset($errors['email2'])) echo $errors['name1']; ?></p>
        <p><?php if(isset($errors['comment1'])) echo $errors['name1']; ?></p>
        <p><?php if(isset($errors['comment2'])) echo $errors['name1']; ?></p>
</form>
<?php 
$con = mysqli_connect("localhost","root","","ecommerce");
if (isset($_POST['submit'])){
    $name = (isset($_POST['name']));
    $email = (isset($_POST['email']));
    $comment = (isset($_POST['comment']));

    if (empty($name)){
        $errors['name1'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:30px;float:right;'>Enter your name</p>";
    }else{
        $name_length = strlen($name);
        if ($name_length > 2 ){
            if (!empty($email)){
                    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                    $errors['email1'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:25px;float:right;'>Enter your email</p>"; 
                }else{
                    if (empty($comment)){
                        $errors['comment1'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:25px;float:right;'>Write your comment</p>"; 
                    }else{
                        $comment_length = strlen($comment);
                        if ($comment_length < 5){
                            $errors['comment2'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:25px;float:right;'>Your comment must be more than 5 words</p>"; 
                        }
                    }
                }
            }else{
                $errors['email2'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:25px;float:right;'>Enter your email</p>"; 
            }
        }else{
            $errors['name2'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:30px;float:right;'>Your name must be more than 2 words/p>";
        }
    }

    //check errors
        if(count($errors) == 0)
        {
            $insert_comment = "insert into comments (email,name,comment) values ('$email','$name','$comment')";
            $insert_comment = mysqli_query($con, $insert_comment);
        }
}
?>

4 个答案:

答案 0 :(得分:1)

对你的mysql列使用DATE,DATETIME或TIMESTAMP类型。

Reference for DATE, DATETIME, TIMESTAMP

创建列时间戳(例如,您也可以使用您想要的每个名称命名),使用mysql NOW()或使用php date("Y-m-d H:i:s")函数在每个插件上设置它:

$insert_comment = "INSERT INTO comments (`email`, `name`, `comment`, `timestamp`) VALUES ('$email','$name','$comment', NOW())";

它将以您选择的格式保存日期时间,时间戳或日期。玩得开心!

答案 1 :(得分:1)

在数据库中创建两个字段:

  • modified_date date
  • modified_time time

现在将您的插入查询更改为

insert into comments (email,name,comment, modified_date, modified_time) values ('$email','$name','$comment', CURDATE(), CURTIME())

答案 2 :(得分:1)

Mysql datetime标准格式为Y-m-d H:m:s。所以在php中使用date()

$date = date("Y-m-d H:i:s");

您可以在插入数据时使用$date

答案 3 :(得分:0)

执行此操作的简单方法是创建单个列类型DATETIME

CREATE TABLE IF NOT EXISITS comments(
    //all your fields
    comment_time DATETIME NOT NULL
)

并在评论表中插入数据时使用now()函数

$sql = "INSERT INTO comments(comment_time) VALUES('now()')";
  

另一种方法

您可以使用TIMESTAMP代替DATETIME。使用TIMESTAMP代替DATETIME的好处是,您不必使用now()功能,它会自动更新/插入日期&amp;任何列连续更新或插入新数据的时间。

要详细了解TIMESTAMP访问here