Moment: 使用 Moment.js 构建 UTC 日期时,zone() setter 不执行任何操作 (2.8.3)

创建于 2014-09-11  ·  3评论  ·  资料来源: moment/moment

在运行 zone(-1) 后,我得到与不运行它时完全相同的时刻对象。 例子:

控制台.log(moment().utc().toDate());
console.log( moment().utc().zone(-1).toDate() );

我希望这会根据时区偏移量调整 Date 对象,但它确实......好吧,什么都没有。

最有用的评论

@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,如果您通过“嘿,我需要这个功能,我该怎么帮忙?”来解决功能差距,每个人都会更快地为您提供开源帮助? 而不是像你那样。

所有3条评论

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,如果您通过“嘿,我需要这个功能,我该怎么帮忙?”来解决功能差距,每个人都会更快地为您提供开源帮助? 而不是像你那样。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

dogukankotan picture dogukankotan  ·  3评论

4rg0n picture 4rg0n  ·  3评论

slavafomin picture slavafomin  ·  3评论

chitgoks picture chitgoks  ·  3评论

danieljsinclair picture danieljsinclair  ·  3评论