Javascript 角度力矩:力矩时区没有美国/纽约的数据
从服务器接收到的日期位于Javascript 角度力矩:力矩时区没有美国/纽约的数据,javascript,angularjs,timezone,momentjs,angular-moment,Javascript,Angularjs,Timezone,Momentjs,Angular Moment,从服务器接收到的日期位于UTC时区,我需要将其转换为特定时区,例如:America/New_York。以下是相同的代码 <span class="bold" ng-bind="sess.date_time | amTimezone:'America/New_York' | amDateFormat:'h:mm a'"></span> 但是美国/纽约是时刻的已知时区,但它仍然要求我添加时区。您需要加载以下所有内容: 瞬间 时刻时区 时刻时区的时区数据 角力矩 在主
UTC
时区,我需要将其转换为特定时区,例如:America/New_York
。以下是相同的代码
<span class="bold" ng-bind="sess.date_time | amTimezone:'America/New_York' | amDateFormat:'h:mm a'"></span>
但是
美国/纽约
是时刻
的已知时区,但它仍然要求我添加时区。您需要加载以下所有内容:
- 瞬间
- 时刻时区
- 时刻时区的时区数据
- 角力矩
就是脚本。它不包含时区数据。如果您使用此分发版,您将按照文档中的描述,通过矩时区.js
或moment.tz.add
拉入自己的时区数据moment.tz.load
包括网站上提到的版本中的所有已知时区数据moment timezone with data.js
包含相同的tz数据,但被截断为2012年至2022年。这是一个小得多的数据文件,对于大多数浏览器端应用程序来说已经足够了moment-timezone-with-data-2012-2022.js
“美国/纽约的时刻时区没有数据”
,因为美国/纽约
是一个有效的TZ数据库标识符,那么您就没有为它加载数据。您可能正在使用矩时区.js
,而没有向其中添加数据。使用矩.tz.add
包含时区数据,或者(更合适地)切换到已包含所有时区数据的文件之一
但是,不要两者都做。时区数据只应加载一次,而即时时区脚本只应加载一次。如果您使用
时刻时区with data.js
或时刻时区with-data-2012-2022.js
,则不应使用时刻时区.js
,因为该脚本已经包含在内。在后端(express)中,我没有对时区数据“要求”js,而且它工作正常。可能是客户端,我们需要像您提到的那样明确地获取这些数据,我们会让您知道这是否有效。太好了!!成功了。“时刻时区0.4.0已经加载,没有任何数据”错误,然后仔细阅读您的答案,最后两行解开了谜团:)谢谢您的评论@AmanGupta。不要两者都用!(时区和数据)脚本,是这里学到的经验。根据“在Node.js中,所有数据都是预加载的。加载数据不需要额外的代码。”这就是您在服务器上开始使用的全部内容:var moment=require('moment-timezone')代码>moment().tz(“美国/洛杉矶”).format()代码>@JoshuaDyck是的,但问题是关于浏览器,而不是节点。
Moment Timezone has no data for America/New_York. See http://momentjs.com/timezone/docs/#/data-loading/.