为多个时区(特别是美国/加拿大)的用户指定时间

时间:2018-04-25 12:32:31

标签: datetime user-interface time timezone

我实施了一个注册工具,该工具发送带有令牌的链接 - 令牌有效期为1小时。所以在电子邮件中(让我们说它现在是14:20)我想说:

您必须在15:30之前点击此链接

此网站的受众群体将位于爱尔兰/英国,美国/加拿大以及欧洲的某些地区 - 所以我想列出这些(非技术性)人员会理解的几个时区的到期时间。

所以这就是我想出来的

Click by:

Ireland/UK > 25 Apr 2018 13:59
CET (Berlin) > 25 Apr 2018 14:59

Pacific (Los Angeles) > 25 Apr 2018 05:59

Mountain (Denver) > 25 Apr 2018 06:59

Central (Chicago) > 25 Apr 2018 07:59

Eastern (New York) > 25 Apr 2018 08:59

现在,我知道丹佛目前是MDT(冬天是MST),但在爱尔兰,我们现在在冬季/秋季的IST(UTC + 1)或GMT - 但如果你问一个随机的人我们在什么时区,充其量你将全年获得GMT作为回应。所以,我列出了作为一个通用的“山”的时间。并举一个示例城市。

这种方法对美国/加拿大的人们有何影响?

我的代码如下,这里是live link

<?php
$exipry = 60*60 + time();

$now_obj       = new DateTime(date("Y-m-d H:i:s", $exipry));

$now_obj->setTimezone(new DateTimeZone('Europe/Dublin'));
$now_hour_from_IRELAND_datetime = $now_obj->format('d M Y H:i');


$now_obj->setTimezone(new DateTimeZone('Europe/Berlin'));
$now_hour_from_CET_datetime = $now_obj->format('d M Y H:i');

$now_obj->setTimezone(new DateTimeZone('America/Los_Angeles'));
$now_hour_from_pacific_datetime = $now_obj->format('d M Y H:i');

$now_obj->setTimezone(new DateTimeZone('America/Denver'));
$now_hour_from_mountain_datetime = $now_obj->format('d M Y H:i');

$now_obj->setTimezone(new DateTimeZone('America/Chicago'));
$now_hour_from_central_datetime = $now_obj->format('d M Y H:i');

$now_obj->setTimezone(new DateTimeZone('America/New_York'));
$now_hour_from_eastern_datetime = $now_obj->format('d M Y H:i');

print("<h1>1 hour from now is:</h1>");
print("Ireland/UK  > $now_hour_from_IRELAND_datetime<p>");
print("CET (Berlin) > $now_hour_from_CET_datetime<p>");
print("Pacific (Los Angeles) > $now_hour_from_pacific_datetime<p>");
print("Mountain (Denver) > $now_hour_from_mountain_datetime<p>");
print("Central (Chicago) > $now_hour_from_central_datetime<p>");
print("Eastern (New York) > $now_hour_from_eastern_datetime<p>");

?>

1 个答案:

答案 0 :(得分:1)

对我来说是正确的。

一定要为亚洲/加尔各答&#39;进行测试。太。这是一个很好的测试,因为它的时区偏移是半小时。

与美国/菲尼克斯&#39;同上。因为他们全年保持标准时间。

通常这样的应用要求每个用户在入职时提供时区名称。 (但许多用户并不烦恼)

在美国,当我们想要指定一个时区,它不会在夏季和冬季之间改变时,我们说&#34;东部时间&#34;,&#34;中部时间&# 34;,&#34;山区时间&#34;,&#34;太平洋时间,&#34;和夏威夷和阿拉斯加时间。加拿大人也有大西洋时间&#34; (&#39;美国/哈利法克斯&#39)。在亚利桑那州(&#39; America / Phoenix&#39;)他们说'亚利桑那时代'。