2009-12-05 150 views
2

我发现很多关于UTC表格和php日期方法的例子来转换它,但我仍然错过了获取服务器日期之后的简单方法,将它转换为我的网页上的用户时区选择。
如何确定从服务器时区的UTC偏移量?

本页内容http://vkham.com/UTC.html我已经找到了一个明确的指南来了解范围,但我不知道如何在桌面上连接例如“欧洲/罗马”,所以有更清楚的事情呢?

我知道我的服务器(美国/芝加哥)的时区,但我仍然不知道如何将它从UTC方法更改为从用户机器中选择的不同时区(例如“欧洲/罗马”)

我tryied的东西,但I'still错过的东西,我不知道它是什么:

<?php 
$timezone = date ("e"); 
$date = date ('Y-m-d H:i:s'); 
print $date." - this is my server date, and his timezone is - $timezone<br/>"; 

$user_timezone = "Europe/Rome"; // there is a way to convert Europe/Rome to UTC -13? 
$selected_timezone = "-13"; // is -13 like Europe/Rome in all cases or only because my server is America/Chicago? 
$date_user = date ("Y-m-d H:i:s $selected_timezone"); 
$str_date_user = strtotime ($date_user); 
$new_user_date = date ('Y-m-d H:i:s', $str_date_user); 
print $new_user_date . " - this is my server date, and his timezone is - $user_timezone"; 
?> 

不存在的方式,欧洲/罗马转换为-13为UTC时区?
-13在所有情况下是否像欧洲/罗马一样,或者只是因为我的服务器是美国/芝加哥?

+0

你将不得不使用PHP的组合(获取服务器时间数据)和爵士(让用户实时数据) – 2014-09-16 08:50:27

回答

3

您可以使用gmdate以生成显示UTC时间的日期 - 无论时区服务器在运行,那么你可以简单地为hours * 3600添加时区差异您使用生成的日期来获取用户的时间戳时间。

另一种方法是使用date_default_timezone_set将本地时间临时设置为用户的时区。

的第一个想法就是这样的例子如下所示:

<?php 
$offset = -13 * 3600; // timezone offset for UTC-13 
$utcTime = gmdate('d.m.Y H:i'); 
$userTime = gmdate('d.m.Y H:i', time() + $offset); 
?>