>我注意到,当我使用 momentJs 以特定格式在我的时区输出日期时,一天就会丢失。
我使用的是 UTC-4:30 时区。
这并非在所有时区都会发生;请注意,这在 UTC-5:00 时区中可以正常工作。
以下是控制台.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')
"01/23/2013"
moment([2013, 0, 24]).format('MM/DD/YYYY')
"01/23/2013"
请注意,一旦使用了 .format() 方法,就会丢失一天,并且输出第 23 天而不是第 24 天。
谁能解释这种行为? 同样,它似乎是特定于时区的。
我将时区设置为 (UTC-4:30) Caracas
,然后检查以下值:
moment('01/24/2013').format('MM/DD/YYYY')
它正确地返回了01/24/2013
,所以我无法重现您描述的问题。
我正在检查在Windows 8上运行的Google Chrome 27.0.1453.116m中的时刻.js 2.0.0。
也许这与旧版本的 moment.js 有关。 你能验证一下吗?