首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于EDT与时差的几个问题

关于EDT与时差的几个问题
EN

Stack Overflow用户
提问于 2017-11-08 05:14:20
回答 1查看 30关注 0票数 0
  1. 我的网站简介

我的网站是为在韩国的访问者(AKA大韩民国)。我的网站的服务器在美利坚合众国。PHPMyAdmin在运行查询SELECT @@ system_time_zone时显示EDT

  1. 我的网站结构

今年10月,当我第一次将我的网站上传到这个服务器时,我查看了DB时间。与韩国的时差似乎是13小时。因此,我将3600 * 13秒添加到DB time(不设置时区),如下所示。

代码语言:javascript
复制
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如下所示:

代码语言:javascript
复制
$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();
  1. 问题情况

今年11月的一天,当我写了一篇文章,检查了帖子的日期字段(my_datetime)时,我和韩国的时差增加了一个小时。显然,在10月底,我纠正了3600 * 13的时间差。然后我确认它和韩国时间相符。然而,在11月,有一个时差一个小时!

  1. 猜原因

美国夏季时间似乎被应用在我的网站的DB服务器上。我猜对了吗?

  1. 我的问题

1)如何从根本上解决这一时差问题?将DB时间转换为KST是正确的吗?还是将其转换为UTC,然后将3600 * x添加到UTC中是正确的方法?

2)尽管问题已经解决,但my中的一些现有数据与韩国时间的时差为1小时。如果要选择具有时间差的数据,应该使用什么查询?从数据中减去多少或更多,以消除1小时时差?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 05:25:09

  1. 使用UTC将时间存储在数据库中。
  2. 将查询更改为使用UTC日期时间插入。
  3. 使用外部库将UTC转换为相应的时区。(以下是我个人的建议。)也许有最好的选择。 PHP :碳 Javascript :瞬间,瞬间时区。
  4. 不,它需要数据库服务器驻留的时区。
  5. 手工验证,或者创建一个作业来更改UTC中的所有日期。

编辑:

http://carbon.nesbot.com/docs/

我的意思是,您可以创建一个脚本并运行cron作业。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47172035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档