今天遇到一个bug,是这样的:
后端返回的时间格式是这样的:yyyy-mm-ddThh:mm:ss.000+0000,前端需要展示的格式是这样的:yyyy-mm-dd hh:mm:ss。
于是写了一个格式化的方法:
function resolvingDate(date){
//date是传入的时间
let d = new Date(date);
let month = (d.getMonth() + 1) < 10 ? '0'+(d.getMonth() + 1) : (d.getMonth() + 1);
let day = d.getDate()<10 ? '0'+d.getDate() : d.getDate();
let hours = d.getHours()<10 ? '0'+d.getHours() : d.getHours();
let min = d.getMinutes()<10 ? '0'+d.getMinutes() : d.getMinutes();
let sec = d.getSeconds()<10 ? '0'+d.getSeconds() : d.getSeconds();
let times=d.getFullYear() + '-' + month + '-' + day + ' ' + hours + ':' + min + ':' + sec;
return times
}
返回的结果在浏览器,安卓端,IOS高版本都可以正常显示,但是在ios 9.0显示为
NaN-NaN-NaN NaN:NaN:NaN
查了一下,是因为早期的ios版本不支持ISO 8601的时间格式,由于时间问题,先使用moment.js组件解决了,之后有时间再自己实现一下吧。