使用PHP自动将UTC转换为本地时间

时间:2015-03-21 17:31:28

标签: php mysql datetime

我使用MySQL和PHP,项目是一种通知管理器

如果某人做某事,则需要在共同的幕后发布新的通知

问题是 - 我们有来自多个时区的用户,目前我使用“datetime”作为字段类型,所以我输入的内容转换为UTC

例如:Im来自印度(+5:30),如果我在21/3/2015 22:50:00创建通知,它将在DB中保存为21/3/2015 17:20:00 < / p>

存储在所有区域中运行良好,但在检索时它显示为21/3/2015 17:20:00(UTC)但我期待在我的时区(IST +5:30)所以我期待的是21/3/2015 22:50:00。

有没有办法在查询中提及在提取本身中转换时间?

或以其他方式进一步转换和处理?

非常感谢任何帮助。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用convert_tz功能,因此在选择时您可以使用以下

mysql> select convert_tz('2015-03-21 17:20:00','+00:00','+05:30') as ist_time;
+---------------------+
| ist_time            |
+---------------------+
| 2015-03-21 22:50:00 |
+---------------------+
1 row in set (0.00 sec)

您需要做的就是将硬编码日期'2015-03-21 17:20:00'更改为所选内容中的列名称。

答案 1 :(得分:1)

您可以通过JSTZ

获取客户端TimeZone

在你的php文件中,你可以在收到mysql之后简单地转换日期:

 $date = new DateTime($date . " " . "UTC");
 $date->setTimezone(new DateTimeZone($timeZoneTo));//$timeZoneTo you get it from JSTZ