我的网站面向韩国(又名大韩民国)的访问者。我的网站的服务器在美国。并且 PHPMyAdminEDT
在运行查询时显示SELECT @@ system_time_zone
。
今年10月我第一次将我的网站上传到这台服务器时,我检查了DB时间。而且好像和韩国有13个小时的时差。因此,我将3600 * 13
秒添加到 DB 时间(不设置时区)如下。
const Offset = 3600 * 13;
$SelectNow = $PDO->prepare('SELECT DATE_ADD(NOW(), INTERVAL '.Offset.' SECOND)');
$SelectNow->execute() or exit;
$DbNow = $SelectNow->fetchColumn();
我的网站$DbNow
如上所述并在各种情况下使用它。比如在发帖的情况下,$DbNow
在INSERT INTO
查询的datetime字段中输入如下:
$WriteNote = $PDO->prepare('INSERT INTO table_note(my_datetime, my_contents) VALUES("'.$DbNow.'", :my_contents)');
$WriteNote->bindValue(':my_contents', $my_contents, PDO::PARAM_STR);
$WriteNote->execute();
今年11月的一天,当我写了一篇文章并查看了文章的日期字段(my_datetime
)时,我与韩国多了一个小时的时差。显然,在 10 月底,我更正了3600 * 13
. 然后我确认它与韩国时间相符。然而,十一月,有一个小时的时差!
似乎美国夏令时正在应用于我网站的数据库服务器。我猜对了吗?
1)如何从根本上解决这个时差问题?将数据库时间转换为 是否正确KST
?或者它是转换为UTC
然后添加3600 * x
到的正确方法UTC
?
2)即使问题解决了,我数据库中的一些现有数据与韩国时间还有一小时的时差。如果我想选择具有时差的数据,我使用什么查询?以及从数据中增加或减去多少以消除 1 小时的时差?
使用外部库将 UTC 转换为各自的时区。(以下是我的个人建议。)可能是最好的。
PHP : 碳
Javascript:时刻,时刻时区。
不,它需要数据库服务器所在的时区。
http://carbon.nesbot.com/docs/
我的意思是您可以创建一个脚本并使用 cron 作业运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句