MomentJS .format() 在我的时区中生成正确的日期 -1 天

MomentJS .format() produces correct date -1 day in my timezone

本文关键字:日期 format 时区 我的 MomentJS      更新时间:2023-09-26

>我注意到,当我使用 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 有关。 你能验证一下吗?