我有以下问题: 我正在使用几年前为我制作的朋友的 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。如果有人知道更好的方法来"按名称"实现正确的时区,以便夏令时/冬令时更改将自动调整,我会很高兴!