Javascript Can';t用角力矩改变时区

Javascript Can';t用角力矩改变时区,javascript,angularjs,momentjs,angular-moment,Javascript,Angularjs,Momentjs,Angular Moment,我正在使用Angular.js,并尝试在不同的时区显示日期: p(style="font-size: 70%",am-time-ago="thing.date") 我包括了moment.js以及moment.js时区数据()。在my.html文件中: <script src="bower_components/moment/moment.js"></script> <script src="bower_components/moment-timezone/

我正在使用Angular.js,并尝试在不同的时区显示日期:

p(style="font-size: 70%",am-time-ago="thing.date")
我包括了moment.js以及moment.js时区数据()。在my.html文件中:

  <script src="bower_components/moment/moment.js"></script>
  <script src="bower_components/moment-timezone/moment-timezone-with-data.js"></script>

到目前为止,我已经尝试了很多排列方式,但似乎没有任何效果。我不知道我可能做错了什么,所以任何建议都是非常受欢迎的。

您说要使用angular-moments.js,但不包括angular-moments.js本身到您的代码中

从那里查看说明,建议将bower和npm与以下命令一起使用:

您可以通过以下方式下载角动量:

  • (首选)使用bower和运行bower安装角动量JS——节省
  • 使用npm并运行npm安装角动量JS——保存
结果是:

 <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script>

 <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script>

 <script src="app/bower_components/angular-momentjs/angular-momentjs.js"></script>

这是我的解决方案。为了找到解决办法,我漫不经心地问了这个问题。所以,如果有人也在这里徘徊,寻找同样的答案

从1.0.0-beta.1版开始,可以使用弹药服务设置时区。只需注入Ammonment服务并调用changeTimeZone:

amMoment.changeTimezone('Europe/London');

嗯,“我已经尝试了很多[…]但什么都不管用”是对最有价值的东西的否定:代码有什么问题,你知道什么不是原因。在没有stacktrace的情况下,有助于猜测发生了什么。@mico:我确实同意,一般来说,这会更有帮助,但我不知道哪里会出错。这就是为什么我要征求建议,也许我可以检查一下。我的角度水平不是很好,而且我以前从未使用过moment.js,所以我不知道所有东西应该如何组合在一起。我很确定我已经遵循了文档,但我一直在想,也许我遗漏了什么。你能告诉我,它是做什么的,而不是显示你想要的时间吗?它显示了未来的日期,即使时间是在过去。例如,如果日期是19:00,当前时间是19:10,它会说“一小时内”,即使它应该说“10分钟前”。我假设该问题与默认时区有关,但我无法更改它,因此出现了这个问题。是的,我的第一个操作是确定事件的时区。date是哪个,然后查看它与纽约时区的关系。抱歉,我无法更改时区的问题,它会显示一个有效的字符串,但会说“10分钟前”或类似。它是否与中不一致的日光保存问题有关?日光保存(DST)在某些情况下需要单独处理。使用isDST()函数(如在Hmm中),我假设即使是,它仍必须将显示的时间从“1小时内”更改为,例如,“4小时前”。我的问题是到那个日期的“距离”不会改变,无论我附加到哪个时区。
amMoment.changeTimezone('Europe/London');