我在使用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日期和时刻显示日期之间有一个月的偏差......
我缺少什么?
答案 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;
答案 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操作它