Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
在mysql中更改时间戳_Mysql_Datetime - Fatal编程技术网

在mysql中更改时间戳

在mysql中更改时间戳,mysql,datetime,Mysql,Datetime,我住在菲律宾,当我在数据库中插入日期时,在数据库中插入的时间少于13小时。例如,我们这里的日期时间是02-11-2016 21-04-00,当我插入时,它是插入02-11-2016 08-04-00 我已经用过了: date_default_timezone_set('Asia/Manila'); 但是没有运气。我已经把网站放在我的域中了。如果我没有错的话,你已经粘贴了php函数,它只会为php设置时区,而不是我的sql。mysql有全局时区变量,可以设置。您应该使用设置全局时区=时区或设置时

我住在菲律宾,当我在数据库中插入日期时,在数据库中插入的时间少于13小时。例如,我们这里的日期时间是02-11-2016 21-04-00,当我插入时,它是插入02-11-2016 08-04-00

我已经用过了:

date_default_timezone_set('Asia/Manila');

但是没有运气。我已经把网站放在我的域中了。

如果我没有错的话,你已经粘贴了php函数,它只会为php设置
时区,而不是
我的sql
。mysql有全局
时区
变量,可以设置。您应该使用
设置全局时区=时区
设置时区=时区

如果在这种情况下您不能直接控制DB服务器,您可以传递第二条语句,即
set time_zone=作为第一条语句


或者,您也可以使用
converttz
函数来转换已存储的值。

您设置的时区用于PHP,正如Bimal所说,您还需要检查服务器时间,因为时间是您不想错过或玩弄的信息中非常敏感的部分

几周前我就遇到过这种情况,有两种方法可以解决:

  • 将服务器时区设置为正确的时区
  • 如果时差始终正好为13小时,请使用此方法:

    $new_time=日期(“Y-m-d H:i:s”,标准时间(“+13小时”)

我最终使用了第二种方法,因为第一种方法对我来说不是一种选择

祝你好运。

这应该由

date_default_timezone_set('Asia/Manila');
确保您正在上载正确的文件


如果它不起作用;尝试创建一个用于错误处理的页面,然后回显一个变量,该变量将设置此时区的时间(如果有效)。使用该变量。

是,仅适用于php。我在哪里设置全局时区?如果您可以直接访问mysql配置文件,可以在my.cnf或my.ini中设置,具体取决于平台。如果不是在调用实际查询之前,您可以调用set time_zone=e.g$pdo=new pdo('mysql:host=localhost;dbname=exampletable','exampleuser','examplepassw',array(\pdo::mysql_ATTR_INIT__命令=>“set time_zone='Europe/London');或者mysql_查询(“SET time_zone='Europe/London”),我有connection.php,我将mysql_查询(“SET time_zone='+13:00')放入因为我的所有页面都有connection.php,但它不起作用。顺便说一句,我没有直接访问权限。我只是借用了讲师的域。时区中的更改用于所有新的插入或更新。现有存储值不会更改。now()将给出不同的值。所有时间戳函数都使用此值。如果您能简要说明您的确切情况,我将尝试模拟并找出您的旧数据,您可以尝试以下操作:更新mytable set dtime=Converttz(dtime,“+00:00”,“+13:00”)假设dtime是field,mytable是Table,我已经想到了第二个选项,但这需要时间,因为有太多的php文件需要编辑。我在项目中遇到了一个截止日期。您可以使用快速修复,创建一个php文件,并使其将时间戳更新为正确的值,然后在提交新值时,确保add将其插入数据库后13小时。