6

我注意到,当我使用 momentJs 在我的时区以特定格式输出日期时,会丢失一天。

我在 UTC-4:30 时区。

这并非在所有时区都发生;注意到这在 UTC-5:00 时区可以正常工作。

以下是console.log连续运行的结果:


正确的输出:

moment([2013, 0, 24])

时刻
  _a:数组 [8]
  _d:2013 年 1 月 24 日星期四 00:00:00 GMT-0430(委内瑞拉标准时间)
  _isUTC:假
  _lang:假
  _proto:对象

moment([2013, 0, 24]).toDate()

2013 年 1 月 24 日星期四 00:00:00 GMT-0430(委内瑞拉标准时间)


输出错误:

moment('01/24/2013').format('MM/DD/YYYY')

“2013 年 1 月 23 日”

moment([2013, 0, 24]).format('MM/DD/YYYY')

“2013 年 1 月 23 日”


请注意,一旦使用 .format() 方法,就会丢失一天,并且输出 23 号而不是 24 号。


任何人都可以解释这种行为吗?同样,它似乎特定于时区。

4

1 回答 1

0

我将时区设置为(UTC-4:30) Caracas,然后检查以下值:

moment('01/24/2013').format('MM/DD/YYYY')

它正确返回01/24/2013,所以我无法重现您描述的问题。

我正在检查 moment.js 2.0.0。在 Windows 8 上运行的 Google Chrome 27.0.1453.116m 中。

也许这与较旧版本的 moment.js 有关。你能验证一下吗?

于 2013-06-20T15:20:51.777 回答