javascript - 调整夏令时的日期过滤器

标签 javascript angularjs

我有一个日期(以 UTC 毫秒为单位)显示在页面 (AngularJS 1.4.0) 上,用户希望在东部时间看到它,而不管他们的计算机上设置的时区如何。

我正在使用 date 过滤器,并且来自 documentation我明白了

$filter('date')(date, format, timezone)

Timezone to be used for formatting. It understands UTC/GMT and the continental US time zone abbreviations, but for general use, use a time zone offset, for example, '+0430' (4 hours, 30 minutes east of the Greenwich meridian) If not specified, the timezone of the browser will be used.

使用今天的时间戳,如果我使用类似的东西

{{ record.Timestamp |日期:'HH:mm:ss.sss':'EST' }}

它写的时间和我预期的一样,但我想我会在 DST 到来时提前一个小时下类。我还可以指定 'EDT' 它会提前一个小时的时间,但是有没有我可以使用的时区缩写,它只是表示“东部”,并使用日期本身来确定是否使用美国东部时间还是美国东部时间?或者我是否需要检查日期并自己创建一个偏移量:-0500/EST 或 -0400/EDT,具体取决于日期? (看起来 timezone 只能是一个字符串,而不是一个函数,所以这会使我的自动检测变得复杂)。

似乎不太可能有人想要将显示硬编码为 EST 或 EDT - 他们更有可能想要针对 DST 调整的时区。

最佳答案

我会使用 Moment.jsMoment Timezone对于这种东西以获得正确的日期时间。 AngularJS 中的过滤器只是格式化日期时间对象并在 UI 中显示。

您还可以使用一些现成的指令,例如 Angular-Moment . 它具有各种可用的过滤功能。

关于javascript - 调整夏令时的日期过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42426328/

相关文章:

javascript - AngularJS/UI 路由器 : How do I use one controller with multiple named views?

javascript - 如何设置 Backbone.js 在 JSON post 中包含模型名称?

javascript - app.get ('' )在带有查询参数的 Node js 中不起作用

javascript - dc.js:具有弹性的条形总计

ruby-on-rails - Angular + Rails 应用程序无法在 heroku 上运行 - 无法实例化模块

javascript - ionic显示来自json http请求的chartjs数据

javascript - 使用同一 Angular Directive(指令)的多个副本时,变量不能独立运行

javascript - 如何在 jQuery 中访问 AngularJS {{curly-brace-value}}

javascript - 仅在 load() 之后运行一次函数

javascript - 启用单击时滚动