我尝试使用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在给定的时区显示?
答案 0 :(得分:2)
您的代码看起来是正确的,并且在当前时区网站上使用Chrome开发工具调试器控制台进行测试时可以正常运行:
这是一个工作片段:
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;
我只能断定你没有正确加载时刻 - 时区数据。
答案 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有更详细的信息。
我希望它可以提供帮助