Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法将正确的时间记录到数据库中_Php_Mysql_Sql_Datetime_Timestamp - Fatal编程技术网

Php 无法将正确的时间记录到数据库中

Php 无法将正确的时间记录到数据库中,php,mysql,sql,datetime,timestamp,Php,Mysql,Sql,Datetime,Timestamp,我无法将正确的时间记录到数据库中。现在,我的计算机上显示的时间是2014-1-25 10:38:30,但当我使用$datetime=date('Y-m-d H:I:s',time())时,我的数据库中记录的时间是2014-01-25 16:34:02。我的数据库中的列类型是DATETIME。我已经将我的计算机时区更改为UTC-05:00,因为这是我从中国带来的计算机 我有一个按钮 这是HTML文件 <span id="postbutton" style="cursor:pointer;

我无法将正确的时间记录到数据库中。现在,我的计算机上显示的时间是2014-1-25 10:38:30,但当我使用$datetime=date('Y-m-d H:I:s',time())时,我的数据库中记录的时间是2014-01-25 16:34:02。我的数据库中的列类型是DATETIME。我已经将我的计算机时区更改为UTC-05:00,因为这是我从中国带来的计算机

我有一个按钮 这是HTML文件

 <span  id="postbutton" style="cursor:pointer; font-weight:bold; font- size:20px;">Launch</span>
这是我的PHP:

if(isset($_POST['timestamp'])){

$timestamp=$_POST['timestamp'];
//here below is the time i want to record
$datetime=date('Y-m-d H:i:s',$timestamp);



$Insert=mysql_query("INSERT INTO `user_post` VALUES('','','$datetime') ")

您可以直接在数据库中执行此操作:

INSERT INTO `user_post`
    select '', '', now();

这实际上比从应用层执行更安全。数据库中的所有datetime值都将保持一致。

首先,不要使用mysql\u查询。它不安全,已弃用。查一下PDO

数据以正确的格式保存正常,因此这不是数据库问题。在使用PHP设置时间时,可以完全排除DB


您需要考虑时间()的来源。这不是你的电脑时钟,或者分钟数是一样的,所以来源是别的。尝试更改服务器(是否使用Apache?)时区/本地化。

在MySQL中检查SELECT NOW()的值;与其摆弄它,不如使用内置函数。@AbdulManaf,它会记录行插入数据库的时间?或者,我在localhost中测试,想记录用户发帖的时间。您认为在表单发帖和插入记录之间有多大的间隔?@DanBracuk,我认为应该在几秒钟之内,直到有点混乱,我是否应该将这一行添加到我的php脚本中,然后它将在数据库中插入一行并记录插入该行的时间?这是您将用于
在数据库中插入一行的SQL,不是你问题中的
insert
语句。是的,我在localhost中测试,在XAMPP中使用Apache,排除DB是什么意思,我听说DateTime的默认值为setting now()函数,但我仍然很困惑,根据手册,这是不允许的,因为数据是以正确的格式存储的,这个问题与数据库无关。你能确认一下你是如何得到时间的吗?在您的问题中,您似乎是在使用PHP,但在您给出的代码示例中使用了JS。要排除服务器的问题,请转到XAMPP目录,\XAMPP\PHP,打开PHP.ini,查找并设置:date.timezone=“CURRENTTIMEZONE”(在此处查找您的),然后重新启动XAMPP。现在,我选择使用PHP记录它,它是这样的$datetime=date('Y-m-d H:i:s',time());但当我记录它时,数据库记录为2014-01-25 18:34:46,但现在是12:37:00,它保存为日期。默认情况下,时区=欧洲/柏林,让我更改它,看看这是否有效
INSERT INTO `user_post`
    select '', '', now();