EEST 时区的 Javascript 日期函数错误

发布于 2024-11-10 11:41:38 字数 698 浏览 3 评论 0原文

new Date("May 27, 2011, 1:00 pm EEST")

Firebug 响应:

Date {Invalid Date}

这是一个已知的 javascript 错误吗?如何解释 javascript 中的“东欧夏季时间”时区和日期?

例如,我可以将时区更改为 +03:00 或 +0300,但这对用户来说就不那么友好了,因为我使用 <<缩写>标签并使用jQuery,我将每个缩写innerHTML格式化为其标题值,这样当您将鼠标悬停在它上面时,我仍然希望工具提示显示“2011年5月27日,下午1:00 EEST”,但在innerHTML中我只需要“2011 年 5 月 27 日”

<abbr class="timestamp blue" title="May 27, 2011, 1:00 pm EEST">May 27, 2011</abbr>

但是,由于 EEST,我得到了这个

<abbr class="timestamp blue" title="May 27, 2011, 1:00 pm EEST">NaN</abbr>

如果我将 EEST 更改为更常见的内容,例如 EST 或 GMT,那么没问题,很奇怪。

new Date("May 27, 2011, 1:00 pm EEST")

Firebug Response:

Date {Invalid Date}

Is this a known javascript bug ? how do you interpret the "Eastern European Summer Time" timezone in javascript with date ?

I can change the timezone to +03:00 or +0300 for example, but then it wouldn't be as friendly for the user, because im using the < abbr > tag and with jQuery i format each abbr innerHTML to what their title value is, so that when you hover over it, I still want the tooltip to display "May 27, 2011, 1:00 pm EEST", but in innerHTML i only need "May 27, 2011"

<abbr class="timestamp blue" title="May 27, 2011, 1:00 pm EEST">May 27, 2011</abbr>

However, because of EEST, i get this

<abbr class="timestamp blue" title="May 27, 2011, 1:00 pm EEST">NaN</abbr>

If i change EEST to something more common such as EST or GMT, then no problem, weird.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苏璃陌 2024-11-17 11:41:38

来自 ECMA 脚本规范 (15.9. 1.15 日期时间字符串格式):

不存在国际标准
指定民用缩写
时区,如 CET、EST 等
有时相同的缩写是
甚至用于两个截然不同的时间
区。因此,ISO 8601 和
该格式指定数字
日期和时间的表示。

来自 ISO 8601

ISO 8601 中没有时区指示符。仅表示时间
作为当地时间或相对于 UTC

简而言之:这不是一个错误。您不能在 javascript Date 对象中使用 EEST 等区域。您必须坚持使用“UTC”或+/- 符号。

您可以找到有关该主题的大量信息@此网页

From the ECMA-script specification (15.9.1.15 Date Time String Format):

There exists no international standard
that specifies abbreviations for civil
time zones like CET, EST, etc. and
sometimes the same abbreviation is
even used for two very different time
zones. For this reason, ISO 8601 and
this format specifies numeric
representations of date and time.

From ISO 8601

There are no time zone designators in ISO 8601. Time is only represented
as local time or in relation to UTC

In short: it's not a bug. You can't use zones like EEST and the like in the javascript Date object. You'll have to stick to 'UTC' or the +/- notation.

You can find a lot of information on the subject @this webpage

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文