【发布时间】:2013-01-12 10:42:25
【问题描述】:
在 Javascript 中,使用 Date 对象的方法在当前用户的本地时区呈现和操作日期相当简单。例如,toLocaleString() 用于输出,Date 构造函数的 7 参数形式用于输入。所以到目前为止,我什至没有费心将时区设置为用户偏好。在内部,所有内容都使用 UTC 存储、计算和来回发送给客户端,我们在客户端对输入和输出进行翻译。
例如,假设用户将其本地计算机的时区设置为美国东部。查看我的网页时,发生在 Unix 时间戳 1359416775000 的事件将呈现为,例如“2013 年 1 月 28 日星期一 18:46:15”,代码不比
new Date(1359416775000).toLocaleString();
但假设我需要向该用户发送一封有关此事件的电子邮件。我应该使用哪个时区来呈现这封电子邮件中的时间戳?显而易见的答案是让用户选择他们的时区。现在假设我这样做并且这个用户选择了US/Eastern。伟大的。现在假设用户下次登录我的网站时,他们的本地计算机是美国中部时间。现在,同一段 Javascript 代码将导致时间戳呈现为“Mon Jan 28 17:46:15 2013”。
这真的是正确的行为吗?用户在我的应用程序中选择了一个时区,但它只适用于电子邮件?
这似乎是一个很常见的问题,我觉得应该有一个常见的最佳实践,我只是想知道那是什么。
【问题讨论】:
-
我不清楚问题是什么。 :-)
-
我添加了一个例子。希望对您有所帮助。
标签: javascript web localization timezone