【发布时间】:2013-01-30 21:06:16
【问题描述】:
我将所有时间保存在 UTC(0) 中的 MySQL 中,因此我可以稍后在为不同时区的用户显示时间时更改它们,以便保存到数据库中,我使用:
function get_utc(){
date_default_timezone_set('UTC');
return date("Y-m-d H:i:s");
}
$now = get_utc();
现在我想根据时区偏移量将这些时间转换为不同的时区,我正在使用这个函数:
function utc_and_timezone($utc_time, $offset) {
return date("Y-m-d H:i:s", strtotime($offset, strtotime($utc_time)));
}
例如,如果 UTC 时间是:2013-01-30 21:06:29 在那个时间应用 +5 时区很容易找到:
$new_time = utc_and_timezone("2013-01-30 21:06:29", "+5 hours"); // Works Fine
它适用于 5,6 或其他整数等偏移量,但对于 +3.5、+2.5 等其他一些则不起作用:
$new_time = utc_and_timezone("2013-01-30 21:06:29", "+5.5 hours"); // NOT WORKING
有人知道为什么吗?! 在不同时区制作 UTC 时间的任何更好的解决方案...?
谢谢
小问题:
我想在+3.5 时区显示像2013-01-30 21:06:29 这样的UTC 时间,这怎么可能?
【问题讨论】:
-
你有用户的时区存储在 MySQL 中吗?如果是这样,在您的查询中转换会更容易。
-
我想在
+3.5时区显示像2013-01-30 21:06:29这样的UTC 时间,这怎么可能? -
你能先回答我的问题吗?
-
是的,我在数据库中有它,它也可以作为会话使用。