Im使用MySQL和PHP,该项目是一种通知管理器
如果有人做了一些事情,需要在通用的战场中发布一个新的通知
问题是,我们有来自多个时区的用户,目前我使用"日期时间"作为字段类型,所以我输入的内容将转换为UTC
例如:我来自印度(+5:30),如果我在2015年3月21日22:50:00创建通知,则它将保存在DB中为2015年3日21日17:20:00
存储在所有区域都能很好地工作,但在检索时,它显示为2015年3月21日17:20:00(UTC),但我预计在我的时区(IST+5:30),所以我预计是2015年3日21:50:00。
有没有一种方法可以在查询本身中提及,以便在获取本身中转换时间?
或任何其他方式进行转换和进一步处理?
非常感谢在这方面的任何帮助。
感谢
您可以使用函数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'
更改为选择中的列名。
您可以通过JSTZ 获取客户端时区
在php文件中,您可以简单地转换从mysql:收到的日期
$date = new DateTime($date . " " . "UTC");
$date->setTimezone(new DateTimeZone($timeZoneTo));//$timeZoneTo you get it from JSTZ