php - 日期列在提交给数据库的表单上未显示正确的日期戳

标签 php mysql forms

出于某种原因,当我将表单提交到我的数据库时,日期列中的日期和时间显示 0000-00-00 00:00:00。我唯一能得到正确日期的方法是手动更新它。它刚刚开始这样做,我不确定我改变了什么。我真的很难解决这个问题。

编辑表单:

<?php
if(!defined('IN_ADMIN')) exit;
?>

<div class="page">
    <h1 class="edit"><?=ucfirst($mode)?> post</h1>
    <span class="error-text"><?=$response_text?></span>
    <form action="admin.php?mode=<?=$mode?>&id=<?=$post['post_id']?>" method="post">
    <p>
        <label for="title">Post title:</label><br />
        <input type="text" size="80" id="title" name="data[post_title]" value="<?=htmlspecialchars(stripslashes($post['post_title']))?>" />
    </p>
    <p>
        <label for="title">Upload Image:</label><br />
        <input type="text" size="80" id="title" name="data[image]" value="<?=htmlspecialchars(stripslashes($post['image']))?>" />
    </p>
        <p>
        <label for="title">Image Alt:</label><br />
        <input type="text" size="80" id="title" name="data[image_alt]" value="<?=htmlspecialchars(stripslashes($post['image_alt']))?>" />
    </p>
        <p>
        <label for="title">Post Category:</label><br />
        <input type="text" size="80" id="title" name="data[post_category]" value="<?=htmlspecialchars(stripslashes($post['post_category']))?>" />
    </p>
    <p>
        <label for="content">Post Insert:</label><br />
        <textarea cols="77" rows="10" id="insert" name="data[post_insert]"><?=htmlspecialchars(stripslashes($post['post_insert']))?></textarea><br />
        <span class="form-text">Brief little tid-bit about the article for home page</span>
    </p>

    <p>
        <label for="content">Post content:</label><br />
        <script>edToolbar('mytxtarea'); </script>
        <textarea cols="77" rows="10" id="mytxtarea" class="ed" name="data[post_content]"><?=htmlspecialchars(stripslashes($post['post_content']))?></textarea><br />
        <span class="form-text">To format just use raw HTML.. &lt;strong&gt;, &lt;span&gt;, etc</span>
    </p>


    <p>
        <label for="status">Post status:</label><br />
        <select id="status" name="data[published]">
            <?=generate_option_list(array('0' => 'Unpublished', '1' => 'Published'), $post['published'])?>
        </select>
    </p>

    <p>
        <input class="button" type="submit" name="miniblog_PostBack" value="<?=ucfirst($mode)?>" />
    </p>



</div>

这是我使用的表单,这是表单所在的 index.php:

case 'add':

if(isset($_POST['miniblog_PostBack']))
{
        $data = $_POST['data'];

        $data['post_slug'] = mb_slug($_POST['data']['post_title']);
        $data['date']      = time();

        $sql ='';
        $i = 1;
        foreach($data as $field => $value)
        {
            if($value == '')
            {
                $failed = true;
                break;
            }
            $fields .= "`" . mysql_real_escape_string($field) . "`";
            $values .= "'" . mysql_real_escape_string($value) . "'";

            $values .= ($i == sizeof($data)) ? '' : ', ';
            $fields .= ($i == sizeof($data)) ? '' : ', ';

            $i++;
        }

        $post = $_POST['data'];

        if($failed)
        {
            $response_text = 'Error: You must fill out all fields';
        }
        else
        {
            $result = mysql_query("INSERT INTO `db` ({$fields}) VALUES({$values})");
            $response_text = ($result) ? 'Post added' : 'Post could not be added';
        }

}

include('edit.php');

break;

最佳答案

$data['date'] = time();

应该是:

$data['date'] = date("Y-m-d H:i:s");

time() 函数返回当前时间(自 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)以来的秒数)。

date() 函数格式化本地日期和时间(默认为当前日期和时间),并返回格式化的日期字符串,在本例中,采用 MYSQL 需要的格式。

关于php - 日期列在提交给数据库的表单上未显示正确的日期戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32302573/

相关文章:

javascript - 在yii controller中注册css和js是不是更好?

Ruby 上的 PHP 风格 Web 开发 : creating microframework for that

php - 如何为此添加标题、描述和关键字表单?

php - 尝试在 woocommerce Analytics -> 订单报告表中添加订单项目名称列(并输出到 csv 文件)

php - 对两个不同的表进行分页

mysql - 嵌套 XML 以加入 MySQL 表

java - 请求调度程序从表单中删除所有单词,但首先

javascript - Angularjs表单不提交数据

CSS - 提交按钮显示短于文本输入

php - URL 在 URL 中编码一个点 (.)?