php - 根据特定时区将当前时间插入mysql数据库

标签 php mysql datetime timezone timestamp-with-timezone

在我的 MySql 数据库中,post_time 字段的值已设置为 NOT NULL DEFAULT CURRENT_TIMESTAMP

我使用以下 MySql insert 语法和 html 表单来收集访问者的数据,当访问者提交表单时,通过隐藏字段将帖子的日期和时间插入到 MySql 数据库中。

$insertSQL = sprintf("INSERT INTO entry (post, post_time) VALUES (%s, %s)",                     
GetSQLValueString($_POST['post'], "text"),  
GetSQLValueString($_POST['post_time'], "date"));
<小时/>
  <form action="<?php echo $editFormAction;?>" method="post" name="form1" id="form1">
    <table width="50%" align="center">
      <tr valign="baseline">
        <td align="right" nowrap="nowrap">Post:</td>
        <td>
        <textarea name="post" cols="50" rows="5"></textarea>
        </td>
      </tr>
      <tr valign="baseline">
      <td align="right" nowrap="nowrap">
        <input type="hidden" name="post_time" value="<?php echo $_POST['TIMESTAMP DEFAULT CURRENT_TIMESTAMP']; ?>" /> 
         <input type="hidden" name="MM_insert" value="form1" />
        </td>
        <td>
 <input type="submit" name="submit_post" value="Submit Post" />
       </td>
       </tr>
    </table>
  </form>

如何根据共享服务器上的预定义时区收集有关日期和时间的数据(该服务器具有基于 GMT 的时区)?

那么我该如何执行以下sql语法呢?

已编辑:

SET time_zone = '美国/纽约';

谢谢

最佳答案

post_time设置为默认值CURRENT_TIMESTAMP,MySQL将自动更新该列。除非您想覆盖它,否则不需要设置它。

设置 date_default_timezone_set() 对于 MySQL 来说并不重要 - 如果 MySQL 服务器设置了自己的日期,则需要为 MySQL 服务器设置时区。

最后,您不应将 post_time 隐藏字段放入表单中 - 您的服务器应该 (A) 生成此值,或 (B) 让 MySQL 自动生成此值。

关于php - 根据特定时区将当前时间插入mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17347386/

相关文章:

javascript - 表单操作与 AJAX 请求 - 发送 JSON

ruby-on-rails - rails + ActiveRecord : comparing dates

datetime - 对 DateTime 数据类型使用比较运算符

php suhosin 警报

get - 使用 PHP 下载文档根目录之外的文件

mysql - 为什么 `MUL` 关键字出现在 `Key` mysql 命令的 `show columns from Employee` 列下?

mysql - Heroku 部署失败 MySQL rake 中止同一文件

PHP 设置时区而不更改日期?

php - 同一模型中的多对多

mysql - 连接表 - 和位置