如何更改 mySQL NOW() 使其适合另一个时区?



我有以下问题: 我正在使用几年前为我制作的朋友的 php/mysql 脚本。通常我会在我的国家/地区的服务器上托管该脚本,因此完全没有问题,因为服务器时间将是我的当地时间(欧洲/柏林)。

但是现在我已经在美国(NY)托管了我的域,并且我的脚本将错误的时间添加到数据库中(目前为-5小时)。

所以不是添加2017-03-23 19:00,而是添加2017-03-23 14:00

所以我的解决方案是更改 mySQL 查询并减去 5 小时,它适合......现在...但是在夏季/冬季更改时,我将不得不再次调整脚本:(

所以我的问题是: 如何更改我的 NOW() 以适应我的时区(欧洲/柏林)?

这是我的一个问题,所以你可以帮我编辑它,因为我是一个完全的菜鸟,需要我们的帮助,非常感谢!

$insQuery = "INSERT INTO tbl_anmeldungen (fld_raid_id,fld_user_id,fld_anmelddate,fld_anmelde_notiz,fld_random) VALUES ('$raidID','$userID',NOW(),'$notiz','$myrand')";

所有需要更改/编辑的是NOW()部分以将其修复到我的时区。如果这是不可能的,我该如何更改 NOW() 部分以使其减去 5 小时?

我非常感谢您的帮助!谢谢!

我从另一个用户那里找到了其他一些"想法":

打开与 MySQL 的连接后,将以下内容作为查询运行: SET time_zone = 时区; 然后,您执行的所有功能都将在该时区为该连接运行(即直到您关闭指向数据库的"链接"。

所以有人可以告诉我以下内容是否有效?

$conn = mysql_connect($dbhostname,$dbusername,$dbpassword) 或 die ("db 下来...");mysql_select_db($dbname);

SET time_zone = "欧洲/柏林";

那么我所有的 NOW() 都会使用我的时区,对吧? 请参阅以下链接: https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

我要感谢用户Barmar!

他没有确切或详细地帮助我,但他带我走上了正确的道路;)我现在已通过以下方式"解决"了我的问题:

CONVERT_TZ(现在(),"+00:00","+5:00")

现在mysql在我的数据库中输入正确的时间(在服务器时间上增加了+5小时,这是纽约,以适应我的时区,即欧洲/柏林)

它有效!但:

这只有在冬季发生一些变化之前才会起作用。然后我将不得不修复我的所有代码并使其 +4 或 +6 小时再次适合。

所以这只是一个半专业的fid。如果有人知道更好的方法来"按名称"实现正确的时区,以便夏令时/冬令时更改将自动调整,我会很高兴!

相关内容

  • 没有找到相关文章

最新更新