离子2 JSON日期和moment.js麻烦

时间:2017-06-30 06:20:58

标签: json date ionic-framework momentjs

我在使用Ionic和moment.js操作日期时遇到问题。 我存储了离子日期时间组件的一些日期:

let somedate = moment(some.date);
console.log('JSON date : ' + JSON.stringify(some.date) + ' resolved as : ' + somedate.format('DD/MM/YYYY'));

并使用moment.js来“人性化”日期显示:

Original JSON date : {"year":2017,"month":7,"day":26,"hour":null,"minute":null,"second":null,"millisecond":null,"tzOffset":0} resolved as : 26/08/2017

得到了结果:

e.g. machinename.subdomain.domain so you have to browse using https://machinename.subdomain.domain:9999/

您可以考虑,原始JSON日期和时刻显示日期之间有一个月的偏差......

我缺少什么?

2 个答案:

答案 0 :(得分:2)

Javascript月份的范围为0-11,即1月为0,2月为1,同样,它会将您带到下个月。尝试从月份值中减去1,以获得正确的月份。



var some = {'date':{"year":2017,"month":6,"day":26,"hour":null,"minute":null,"second":null,"millisecond":null,"tzOffset":0} };

let somedate = moment(some.date);
console.log('JSON date : ' + JSON.stringify(some.date) + ' resolved as : ' + somedate.format('DD/MM/YYYY'));

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

最后,根据您的回答,我使用转换方法解决了问题,该方法采用原始JSON日期格式并使用TypeScript返回Javascript Date对象:

  private _JSONDateToDate(jsonDate: any){
if(typeof jsonDate == 'object')
  return new Date(jsonDate.year, (parseInt(jsonDate.month) - 1), jsonDate.day);

return jsonDate;

}

我减去1个月的“月”属性以获得正确的Date对象...然后,我可以用moment.js操作它