javascript - 当我使用 moment 解析时,Moment.js 2 个不同的日期字符串给出相同的值

标签 javascript date momentjs

我正在解析 2 个不同的日期字符串

var d1  = '2014-02-01T00:00:00.000+0530'

var d2 = '2014-02-23T00:00:00.000+0530'   

当我使用 moment 解析它们时

alert(moment(d1, 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"').toDate());
alert(moment(d2, 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"').toDate());

他们都打印 Sat Feb 1 2014 xxxxx

这是怎么回事??

这是我创建的 fiddle 的链接

jsfiddle

最佳答案

我认为您的时刻格式化字符串导致了您的问题。如果我删除它,日期将不会打印出来。

http://jsfiddle.net/K5ub8/7/

编辑:具体问题是您当天使用的是 dd,而不是 DDhttp://momentjs.com/docs/#/parsing/string-format/

这是你的 fiddle 修复: http://jsfiddle.net/K5ub8/9/

但是,我不是 100% 确定小数秒,我相信它是 SSS 而不是 fffffff 但如果你需要迎合小数,我会测试这个秒。

我应该提一下,如果您使用 toDate() 将它转换回 JavaScript 日期对象,那么您实际上并不需要 moment 格式化参数,因为日期将以 JSON 格式格式化日期格式。

我想问为什么你要生成一个 moment 格式的日期,然后将它转换回 JavaScript,一个正常的做法可能是接收一个 JavaScript 格式的日期,然后创建一个 moment 对象,你可以用它来执行计算并以用户友好的方式显示。

关于javascript - 当我使用 moment 解析时,Moment.js 2 个不同的日期字符串给出相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22063749/

相关文章:

javascript - Ember Promise 链不返回总和

javascript - float 显示错误

Oracle Date Formatting Null 日期为 00/00/0000

momentjs - 如何解析UTC中的日期时间?

javascript - 按字符串属性值对对象数组进行排序

javascript - ReactJS:更新组件时无法在 'removeChild' 上执行 'Node'

当我知道格式时,php 从字符串中获取时间戳

javascript - MooTools:获取给定一周的第一天和最后一天

javascript - 将 get 请求中的日期时间与 JavaScript 中的当前日期时间进行比较

javascript - 使用 moment.js 防止 DST 偏移以处理重复发生的事件