在运行 zone(-1) 后,我得到与不运行它时完全相同的时刻对象。 例子:
控制台.log(moment().utc().toDate());
console.log( moment().utc().zone(-1).toDate() );
我希望这会根据时区偏移量调整 Date 对象,但它确实......好吧,什么都没有。
Moment 及时跟踪实例(即自 1970 UTC 以来的毫秒数)。 当你说utc()
或zone()
时你在做什么,你正在改变那个时间的_expressed_(即我们在美国东部时间说“9:00”但在太平洋标准时间说“6:00” ,但时间是一样的)。 因此,将其转换回日期会删除“您应该以不同方式打印日期”元数据。 这仍然是同一时间。
听起来您要修改实际时间? 我们没有“改变时间,以便它在另一个区域中以相同的方式显示”功能,但是,我们已经讨论过它(或者我们,@ichernev?)
是的,我想修改实际时间。 这是非常有限的,由于这个限制,我可能不得不停止使用这个库。
@rquinlivan我挖得更深一些。 您可以将第二个参数传递给zone()
以使其保持挂钟时间相同:
> moment().format()
'2014-09-15T16:59:30-04:00'
> moment().zone(-1).format()
'2014-09-15T21:59:35+01:00'
> moment().zone(-1, true).format()
'2014-09-15T16:59:38+01:00'
所以你最终会得到:
> moment().toDate()
Mon Sep 15 2014 17:00:16 GMT-0400 (EDT)
> moment().zone(-1, true).toDate()
Mon Sep 15 2014 12:00:19 GMT-0400 (EDT)
我相信这就是你想要的。
FWIW,如果您通过“嘿,我需要这个功能,我该怎么帮忙?”来解决功能差距,每个人都会更快地为您提供开源帮助? 而不是像你那样。
最有用的评论
@rquinlivan我挖得更深一些。 您可以将第二个参数传递给
zone()
以使其保持挂钟时间相同:所以你最终会得到:
我相信这就是你想要的。
FWIW,如果您通过“嘿,我需要这个功能,我该怎么帮忙?”来解决功能差距,每个人都会更快地为您提供开源帮助? 而不是像你那样。