2016-04-08 36 views
0

有没有办法使用moment.js或moment-timezone来设置时区,以反映“America/New_York”,无论用户从哪里访问应用程序?如何将时区设置为'America/New_York'而不管浏览器时区? (moment.js)

我试过这个,但对象的时区反映浏览器的时区并返回America/Los_Angeles。

moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", "America/New_York") 
+0

你的语法在这里完全没问题。当我运行它时,它会生成一个具有-4偏移量的日期,这是正确的。当你说'对象的时区'时,你在看什么属性? –

+1

检查调试控制台。您是否收到“Moment Timezone没有America/New_York数据”错误?如果是这样,你没有加载tz数据。 [见这里](http://stackoverflow.com/a/33263885/634824)。 –

回答

1

如这里指出,

Moment.js docs

您需要包括时区模块,并使用它像这样:

moment("8/26/2013 4:55 pm", "M/D/YYYY h:mm a").tz("America/New_York").format(); 
1

要更改默认的时区,使用moment.tz.setDefault与有效时区:

moment.tz.setDefault("America/New_York"); 

moment.js documentation

+0

会创建一个新的时刻对象,然后在默认时区下创建?如果我的电脑设置为太平洋时区 – anm

+0

yes,新的时刻对象将使用默认时区创建,您可以在'moment.tz.setDefault(...')中设置它。 – alexmac