您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

PHP和MySQL存在时区问题

PHP和MySQL存在时区问题

这里的技巧是知道什么是列类型date_last_active我有足够的经验,TIMESTAMP并且DATETIME知道一个翻译(并尊重)MysqL time_zone会话变量,而另一个没有。

MysqL> SET SESSION time_zone = 'America/New_York';
Query OK, 0 rows affected (0.00 sec)

MysqL> create table timetest ( dt datetime NULL, ts timestamp NOT NULL DEFAULT 0 );
Query OK, 0 rows affected (0.06 sec)

MysqL> INSERT INTO timetest ( dt, ts ) VALUES ( UTC_TIMESTAMP(), UTC_TIMESTAMP() );
Query OK, 1 row affected (0.00 sec)

MysqL> INSERT INTO timetest ( dt, ts ) VALUES ( Now(), Now() );
Query OK, 1 row affected (0.00 sec)

MysqL> SELECT * FROM timetest;
+---------------------+---------------------+
| dt                  | ts                  |
+---------------------+---------------------+
| 2009-06-27 17:53:51 | 2009-06-27 17:53:51 | 
| 2009-06-27 13:53:54 | 2009-06-27 13:53:54 | 
+---------------------+---------------------+
2 rows in set (0.00 sec)

MysqL> set session time_zone='UTC';
Query OK, 0 rows affected (0.00 sec)

MysqL> SELECT * FROM timetest;
+---------------------+---------------------+
| dt                  | ts                  |
+---------------------+---------------------+
| 2009-06-27 17:53:51 | 2009-06-27 21:53:51 | 
| 2009-06-27 13:53:54 | 2009-06-27 17:53:54 | 
+---------------------+---------------------+
2 rows in set (0.00 sec)

所以,这是我的工作:

希望这足以弄清楚如何解决此问题。如果您还有其他问题,请告诉我。

php 2022/1/1 18:17:16 有478人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶