与时区的时刻没有正确格式化日期

时间:2015-06-09 07:25:41

标签: momentjs

我尝试使用Moment with Timezones格式化2014-10-03T23:09:42.764Z,以便我可以为应用的用户正确显示它。但是,无论我在Moment中输入什么时区,它仍然会显示当前区域设置的时区:(我在美国东部时间)

moment('2014-10-03T23:09:42.764Z').tz('Europe/Paris').format()
"2014-10-03T19:09:42-04:00"
moment('2014-10-03T23:09:42.764Z').tz('Europe/London').format()
"2014-10-03T19:09:42-04:00"

即使我同时输入伦敦和巴黎,它仍会显示在我当前的时区。有没有办法强制Moment在给定的时区显示?

2 个答案:

答案 0 :(得分:2)

您的代码看起来是正确的,并且在当前时区网站上使用Chrome开发工具调试器控制台进行测试时可以正常运行:

Screenshot

这是一个工作片段:



var a = moment('2014-10-03T23:09:42.764Z').tz('Europe/Paris').format();
var b = moment('2014-10-03T23:09:42.764Z').tz('Europe/London').format();

document.getElementById("a").innerHTML = a;
document.getElementById("b").innerHTML = b;

<script src="http://momentjs.com/downloads/moment.min.js"></script>
<script src="http://momentjs.com/downloads/moment-timezone-with-data-2010-2020.min.js"></script>
<div id="a"></div>
<div id="b"></div>
&#13;
&#13;
&#13;

我只能断定你没有正确加载时刻 - 时区数据。

答案 1 :(得分:1)

你应该尝试类似的东西:

var m = moment.tz('2014-10-03T23:09:42.764Z', 'America/Toronto');    
m.tz("Europe/Paris").format();

在帖子中设置默认时区:

var date = moment('2014-10-03T23:09:42.764Z')

看来,日期对象中没有默认的时区信息。

您可以看到官方documentation有更详细的信息。

我希望它可以提供帮助