gpt4 book ai didi

php - 更新 mysql 时区并更改所有 TIMESTAMPS 列

转载 作者:行者123 更新时间:2023-11-29 02:54:17 25 4
gpt4 key购买 nike

首先我将 MYSQL 设置为 America/Montreal

SET time_zone = 'America/Montreal

为了确保一切正常,我在 PHP 中使用:

date_default_timezone_set('America/Montreal');

我不明白的是,保存在数据库中的值不正确,例如 11:00:00 将保存 10:00:00,但是在获取信息时显示的是 11:00:00。所以在一天结束时,系统按我们想要的方式运行,但数据库中的数据不准确。有人可以向我解释为什么吗?例如,我将一列 start_time 设置为 TIMESTAMP

"INSERT into table set start_time = '".date("Y-m-d H:i:s")."'

假设当前时间是 11:00:00,但保存的时间将是 10:00:00,并且在获取时将返回 11:00:00。

然后回到我的问题,由于数据不准确,我想将服务器时间更改为正确的时间并让 MySQL 使用新时间,如果我这样做,数据库中的日期/时间数据会自动更新?如果不是,我该如何更新新时区的所有日期和时间?

谢谢。

最佳答案

那是因为您的 MySQL 服务器有另一个时区(您的 PHP 服务器与您的 MySQL 服务器不同)!当您获取时间戳字段时,php 会根据您的默认时区自动对其进行本地化。为了让你的数据库也有正确的时间戳,你需要在连接到 MySQL 时设置它:

$mysqli->query("set time_zone = '+00:00'");

此命令将您的 MySQL 连接时区设置为 GMT,但对于蒙特利尔,它应该是 -05:00

希望这对您有所帮助!

关于php - 更新 mysql 时区并更改所有 TIMESTAMPS 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32462850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com