为什么Moment.JS无法正确解析24小时日期

用户名

每当我使用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"

它几乎就像它使用一些疯狂的时区来解析它,而不仅仅是解析我想要的本地时区中的日期,我认为这将是默认行为。

如何使它正常工作?

谢尔盖·莫伊谢夫(Sergey Moiseev)

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么moment.js日期要提前50年?

为什么moment.js减去方法不起作用?

为什么将时间与moment.js进行比较失败?

为什么moment.utc(...)。diff(moment.utc(...))受源日期偏移量影响

在此示例中,为什么我无法使用moment js计算日期时间差?

moment.js 24小时格式

Moment.js无法正确解析javascript日期

如何使用moment.js对结果大于24小时的日期和时间求和

为什么 moment.js 在格式化后将日期时间添加 3 分钟?

为什么vue.js无法使用moment.js使用datepicker更新dom

为什么在moment.js中使用字符串参数指定的时区无法识别?

Moment.js 24小时制,处理24小时制

SimpleDateFormat返回24小时日期:如何获取12小时日期?

Moment.JS:为什么具有相同日期(相同时刻的克隆)的`===`或`==`或indexOf返回false(或-1)?

Moment.js:为什么此转换日期-> Unix给我5:00:00而不是0:00:00?

Python:筛选项目24小时日期格式

24小时日期增量(PHP / Laravel)

为什么boostrap类无法正确解析?

为什么此JSON无法正确解析?

JavaScript / jQuery-从24小时日期时间字符串转换为12小时日期格式?

jQuery DataTables datetime-moment无法正确解析日期,或者根本无法解析日期

将R中的24小时日期格式转换为12小时格式

为什么unix_timestamp会在12小时之内不正确地解析它?

JavaScript日期解析-为什么?

DataTables和moment.js无法按日期正确排序

使用moment.js以24/12小时格式创建时间数组

使用moment.Js将字符串转换为24小时制

JQuery 如何在使用 Moment JS 时返回正确的日期

为什么Node.js无法正确解析以下页面?