我将所有时间保存在 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时间的任何更好的解决方案......?
谢谢
简短的问题:
我想2013-01-30 21:06:29
在+3.5
时区中显示 UTC 时间,这怎么可能?