我的网站是为在韩国的访问者(AKA大韩民国)。我的网站的服务器在美利坚合众国。PHPMyAdmin在运行查询SELECT @@ system_time_zone时显示EDT。
今年10月,当我第一次将我的网站上传到这个服务器时,我查看了DB时间。与韩国的时差似乎是13小时。因此,我将3600 * 13秒添加到DB time(不设置时区),如下所示。
const Offset = 3600 * 13;
$SelectNow = $PDO->prepare('SELECT DATE_ADD(NOW(), INTERVAL '.Offset.' SECOND)');
$SelectNow->execute() or exit;
$DbNow = $SelectNow->fetchColumn();我的网站认为$DbNow和上面一样,并使用它在各种情况下。例如,在投递情况下,在$DbNow查询的datetime字段中输入INSERT INTO如下所示:
$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的时间差。然后我确认它和韩国时间相符。然而,在11月,有一个时差一个小时!
美国夏季时间似乎被应用在我的网站的DB服务器上。我猜对了吗?
1)如何从根本上解决这一时差问题?将DB时间转换为KST是正确的吗?还是将其转换为UTC,然后将3600 * x添加到UTC中是正确的方法?
2)尽管问题已经解决,但my中的一些现有数据与韩国时间的时差为1小时。如果要选择具有时间差的数据,应该使用什么查询?从数据中减去多少或更多,以消除1小时时差?
发布于 2017-11-08 05:25:09
编辑:
http://carbon.nesbot.com/docs/
我的意思是,您可以创建一个脚本并运行cron作业。
https://stackoverflow.com/questions/47172035
复制相似问题