我正在解析 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 的链接
最佳答案
我认为您的时刻格式化字符串导致了您的问题。如果我删除它,日期将不会打印出来。
编辑:具体问题是您当天使用的是 dd
,而不是 DD
。 http://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/