我使用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。
有没有办法在查询中提及在提取本身中转换时间?
或以其他方式进一步转换和处理?
非常感谢任何帮助。
谢谢
答案 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