编程语言
首页 > 编程语言> > javascript-Angular Moment:Moment时区没有America / New_York的数据

javascript-Angular Moment:Moment时区没有America / New_York的数据

作者:互联网

从服务器收到的日期为UTC时区,我需要将其转换为特定时区,例如:America / New_York.以下是相同的代码

  <span class="bold" ng-bind="sess.date_time | amTimezone:'America/New_York' | amDateFormat:'h:mm a'"></span>

但是这样做时出现以下错误:

Moment Timezone has no data for America/New_York. See http://momentjs.com/timezone/docs/#/data-loading/.

但是America / New_York是目前已知的时区,但仍然要求我添加时区.

解决方法:

您需要加载以下所有内容:

>时刻
>时区
>瞬间时区的时区数据
>角矩

moment-timezone主页上,存在三种不同的moment-timezone分布.

> moment-timezone.js只是脚本.它不包含任何时区数据.如果使用此分发,则可以按照文档中的说明通过moment.tz.add或moment.tz.load提取自己的时区数据.
> moment-timezone-with-data.js包含网站上提到的版本中来自tz database的所有已知时区数据.
> moment-timezone-with-data-2012-2022.js包含相同的tz数据,但是被截断到2012年到2022年.这是一个非常小的数据文件,足以满足大多数浏览器端应用程序的需要.

每个都有缩小版本.

因此,如果您获得“ Moment Timezone没有America / New_York的数据”,则因为America / New_York是有效的TZ数据库标识符,那么您根本就没有为其加载数据.您可能正在使用moment-timezone.js而不向其中添加数据.可以使用带有moment.tz.add的时区数据,或者(更适当地)切换到已经包含所有时区数据的文件之一.

但是,不要两者都做.时区数据应仅加载一次,而矩时区脚本应仅加载一次.如果您使用moment-timezone-with-data.js或moment-timezone-with-data-2012-2022.js,则不应使用moment-timezone.js,因为该脚本已包含在内.

标签:javascript,angularjs,timezone,momentjs,angular-moment
来源: https://codeday.me/bug/20191010/1886856.html