所以我有这个应用程序可以接收来自手机的包裹,包括 UTC 的 gps 时间。我目前从 php 将其存储在我的 mysql 数据库中。
我有两个日期时间字段,一个包含电话时间,另一个是服务器时间。
我的查询如下所示: INSERT INTO GeoLocation(Time, ServerTime) VALUES(FROM_UNIXTIME(1353438497), UTC_TIMESTAMP())
我简化并删除了所有其他值。当前的 UTC unix 时间戳现在是:1353438597 与http://www.unixtimestamp.com/index.php一致,所以我的其他手机时间戳是 100 秒,非常有意义。
但是现在有趣的事情。我应该提到我住在瑞典,时区为+1,服务器在瑞典,很可能配置为瑞典时间
当我使用 phpmyadmin 查看刚刚插入的值时,它说时间是 2012-11-20 20:08:17 但服务器时间是 2012-11-20 19:08:23。因此,即使两者都是正确的 utc 时间,一个输入 ass From_unixtime,另一个输入 UTC_TIMESTAMP,它们现在显示不同的时间。
我读到您需要使用 SET time_zone = '+00:00'; 设置时区;
所以我尝试在 phpmyadmin 中打开一个查询窗口并输入
SET time_zone = '+00:00';
SELECT Time, ServerTime FROM `GeoLocation` WHERE 1;
但我仍然得到两个领域报告的完全相同的时间。
但是 phpmyadmin 确实运行了这两行,因为如果我改为尝试这个:
SELECT @ @global.time_zone , @ @session.time_zone
我明白了:
@@global.time_zone @@session.time_zone
系统系统
但如果我这样做:
SET time_zone = '+00:00';
SELECT @@global.time_zone, @@session.time_zone
我明白了:
@@global.time_zone @@session.time_zone
系统 +00:00
所以这对我来说没有任何意义,我已经确认我提供了 UTC 时间(从 unix 时间开始),但它显示为 UTC+1 并且它无助于设置时区。
有任何想法吗?