【发布时间】:2016-05-20 03:52:43
【问题描述】:
我设置了 PHP 和 mySQL conf 文件 要有默认时区 = 'Europe/Rome' (或者至少我认为我做到了)
如果我查询 mysql
mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM | SYSTEM |
+--------------------+---------------------+
mysql> SELECT CURRENT_TIMESTAMP(); // it's 6:38pm in NYC now
+---------------------+
| CURRENT_TIMESTAMP() |
+---------------------+
| 2016-02-09 18:38:45 |
+---------------------+
但我住在纽约,服务器位于美国(MediaTemple),当我测试我的查询时,它会保存以 24 小时格式转换的 New_York 时间:
例如。我刚刚使用...time = NOW()... 在我的表中输入了一行
在纽约是下午 6 点 31 分
但mysql行中的时间显示2016-02-09 18:31:47
我期待在罗马/柏林看到2016-02-09 00:31:47 的地方
我做错了什么??那我需要在哪里设置时区呢?
【问题讨论】:
-
你从命令行中的
date得到什么。 askubuntu.com/questions/323131/setting-timezone-from-terminal/… -
如果您没有使用
SET的超级权限,则需要使用使用日期的时区php.net/manual/en/function.date-default-timezone-set.php 的PHP 方法。这就是我必须在一些不允许这些特权的服务器上做的事情。或在stackoverflow.com/a/19069310 中使用SELECT UNIX_TIMESTAMP...