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

use*_*326 6 javascript jquery momentjs

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

我在UTC-4:30时区.

这不会发生在所有时区; 注意到这在UTC-5:00时区中正常工作.

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


正确输出:

moment([2013, 0, 24])
Run Code Online (Sandbox Code Playgroud)

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

moment([2013, 0, 24]).toDate()
Run Code Online (Sandbox Code Playgroud)

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


输出不正确:

moment('01/24/2013').format('MM/DD/YYYY')
Run Code Online (Sandbox Code Playgroud)

"2013年1月23日"

moment([2013, 0, 24]).format('MM/DD/YYYY')
Run Code Online (Sandbox Code Playgroud)

"2013年1月23日"


请注意,一旦使用.format()方法,将丢失一天,输出第23个而不是第24个.


任何人都可以解释这种行为吗?再次,似乎时区具体.

Mat*_*int 0

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

moment('01/24/2013').format('MM/DD/YYYY')
Run Code Online (Sandbox Code Playgroud)

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

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

也许这与 moment.js 的旧版本有关。您能核实一下吗?