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

标签 javascript jquery momentjs

我注意到,当我使用 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 日。


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

最佳答案

我将时区设置为 (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 有关。你能验证一下吗?

关于javascript - MomentJS .format() 在我的时区产生正确的日期 -1 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14471467/

相关文章:

javascript - HTML5 从多个部分播放电影而不闪屏

javascript - Javascript 中的 ProcessMessages()

javascript - 如何使用 jquery 或 javascript 将复选框选择限制为一个

javascript - 如果选择了选项,则显示文本区域

javascript - Moment.js 本地相对时间

javascript - Moment.js小数转时间格式

javascript - 如何将时间分量归零?

javascript - 如何在一些代码后导入ES6(SystemJS)?

javascript - 如何为多个 AngularJS 项目使用相同的代码库

javascript - 为什么 return false 在下面的代码中不起作用