每当我使用moment.js和node解析日期时,它都应该是12小时。考虑以下测试:
var moment = require('moment');
var dt1 = moment('14:00, 10 Jun 2014', 'HH:mm, DD MMM YYYY').toDate();
console.log('dt1:' + JSON.stringify(dt1, null, 4));
var dt2 = moment('02:00, 10 Jun 2014', 'HH:mm, DD MMM YYYY').toDate();
console.log('dt2:' + JSON.stringify(dt2, null, 4));
它给出了输出:
dt1:"2014-06-10T02:00:00.000Z"
dt2:"2014-06-09T14:00:00.000Z"
它几乎就像它使用一些疯狂的时区来解析它,而不仅仅是解析我想要的本地时区中的日期,我认为这将是默认行为。
如何使它正常工作?
Moment.js正常工作。问题的根源是将日期转换为UTC的JSON.stringify。因此,您需要将时区添加到时间戳中以解决此问题。最简单的方法是将第一时刻对象变形为第二时刻对象以更改格式,并使用不带参数的格式调用来设置默认格式(在此处查找“默认格式”)。
moment(moment('02:00, 10 Jun 2014', 'HH:mm, DD MMM YYYY').toDate()).format();
更新:
正如@MattJohnson指出的那样,它更简单。不知道为什么以前对我不起作用,但只需要:
moment('02:00, 10 Jun 2014', 'HH:mm, DD MMM YYYY').format()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句