Javascript 用我创建的时区偏移量初始化一个时刻
我在javascript中使用了时刻和时刻时区,这部分是我见过的最不直观的API之一 我希望:Javascript 用我创建的时区偏移量初始化一个时刻,javascript,momentjs,Javascript,Momentjs,我在javascript中使用了时刻和时刻时区,这部分是我见过的最不直观的API之一 我希望: moment("2015-12-14T04:00:00Z").utcOffset() 将是纯函数,并返回参数中包含的偏移量,即0。但它却隐式地将其转换为我的本地时区偏移量(PST),因此返回-480为什么??我问的是我刚刚创建的对象的偏移量,而不是我当前的偏移量。这就像我编写了一个api,其中调用User.find(123).name()返回您的名字,而不是User 123的名字 无论如何,我能做到
moment("2015-12-14T04:00:00Z").utcOffset()
将是纯函数,并返回参数中包含的偏移量,即0。但它却隐式地将其转换为我的本地时区偏移量(PST),因此返回-480为什么??我问的是我刚刚创建的对象的偏移量,而不是我当前的偏移量。这就像我编写了一个api,其中调用User.find(123).name()返回您的名字,而不是User 123的名字
无论如何,我能做到
moment("2015-12-14T04:00:00Z").tz("utc").utcOffset()
但是我的datetime字符串是动态的,所以我不知道时区
如何获得我期望的行为,js中的某个时刻,它位于我传入的字符串中包含的时区偏移量中?使用
parseZone
将偏移量保持在传入时
moment.parseZone("2015-12-14T04:00:00Z")
至于你问题的“为什么”部分:
为本地模式。不明确的输入(无偏移)假定为本地时间。无歧义输入(带偏移)调整为本地时间力矩(…)
是utc模式。不明确的输入假定为UTC。明确的输入调整为UTC时刻。utc(…)
保留传入的输入区域。如果输入不明确,则与本地模式相同moment.parseZone()
使用矩时区插件可以解析特定时区中的输入矩.tz(…)
还要记住,时区和时区偏移是两件不同的事情。偏移量
-08:00
不一定意味着你在美国太平洋时区。是的,可能有什么我没有考虑的,或者是历史行李之类的。将基本表单矩()设为本地模式似乎是一个奇怪的选择,对于默认行为,parseZone()行为似乎更自然。感谢您的解释,这个主题实际上是我第一次接触矩.js的方式。有关历史,请参见和。