【问题标题】:Specify a time to users in multiple time zones (especially USA/Canada)为多个时区的用户指定时间(尤其是美国/加拿大)
【发布时间】:2018-04-25 12:32:31
【问题描述】:

我正在实施一个注册工具,它发送一个带有令牌的链接 - 该令牌的有效期为 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>");

?>

【问题讨论】:

  • 谢谢。但我对 UI 方面更感兴趣,比如北美人对时区的熟悉程度以及我的文字是否清晰?
  • 您能否澄清您的问题:您是否只是想知道您的列表中应包含哪些时区以涵盖美国和加拿大?或者你也想要其他人?请具体。谢谢。
  • 在 O Jones 的回答下方查看我的评论 - 美国客户需要这个,更有可能在东海岸。尝试以尽可能简单的语言呈现链接到期时间,而不会使事情复杂化,尽可能说 DST

标签: datetime user-interface time timezone


【解决方案1】:

在我看来是正确的。

请务必也针对“亚洲/加尔各答”进行测试。这是一个很好的测试,因为它的时区偏移量是半小时。

'America/Phoenix' 也一样,因为它们全年都保持标准时间。

通常,此类应用会要求每位用户在引导期间提供时区名称。 (但很多用户不打扰)

在美国,当我们想要指定一个时区时,我们会说“东部时间”、“中部时间”、“山地时间”、“太平洋时间”、 "以及夏威夷和阿拉斯加时间。加拿大人也有“大西洋时间”(“美国/哈利法克斯”)。在亚利桑那州(“美国/凤凰城”),他们说“亚利桑那时间”。

【讨论】:

  • 我可以继续讨论美国印第安纳州的所有时区怪异问题(立法机关曾经接近通过一项将 π 的值设为 22/7 的法律)。但我会放过你。
  • 刚试了印度,还行。实际上,我确实有凤凰山时间,并认为我有一个和洛杉矶一样的错误。进一步看他们没有夏令时。啊,我们都知道馅饼是 3 块又是一片!
  • 我用建议的文字更新了实时链接。除非您认为我需要,否则我会将其保留在 4 个时区,因为实际上,这个网站是关于爱尔兰产品的,我想说离东海岸越远,兴趣就越少。
  • 在圣帕特里克节,美国的每个人都是爱尔兰人。但那一天总是在夏令时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
  • 2013-06-02
  • 1970-01-01
  • 2011-12-14
相关资源
最近更新 更多