今天做了一個需求,要在列表中把后台返回來的時間給顯示出來,使用 new Date(str) 在微信開發者工具上顯示是沒有問題的,然后在IOS系統上顯示是NAN。
原因是 IOS系統只識別 " / " 不識別 " - ".
后台返回來的時間類型一般有三種 時間、時間搓、字符串。我們就研究一下這三種類型怎么 處理才能兼容安卓系統和IOS系統吧。
formatTime(d) { var year = d.getFullYear(); var month = d.getMonth() + 1; var date = d.getDate(); var hour = d.getHours(); var minute = d.getMinutes(); var second = d.getSeconds(); return year + "/" + (D[month] || month) + "/" + (D[date] || date) + " " + (D[hour] || hour) + ":" + (D[minute] || minute) + ":" + (D[second] || second);//必須是‘/’格式 }
一、字符串類型 2019-8-14 10:03:45
var date = "2019-8-14 10:03:45" //不兼容代碼 var newDate = new Date(date); //解決 var newDate = new Date(date.replace(/-/g, '/'));
二、時間戳類型 1565776169000 (毫秒) 最后顯示 2019/08/14 17:49:29
var date = 1565776169000; //必須是數值類型,必須是13位數 var newDate = new Date(date); var newDateTime = dateFormater.formatTime(newDate) // 2019/08/14 17:49:29
三、時間類型 2019-08-09T18:23:27.000+0800
var date = '2019-08-09T18:23:27.000+0800'; var data = date.substr(0, 19); //'2019-08-09T18:23:27' var newDate = new Date(data.replace(/T/g, ' ').replace(/-/g, '/'));
四、終極處理時間插件 moment.js