uniapp ios 字符串转时间格式的问题


今天做了一个需求,使用 new Date(str)  在微信开发者工具上显示是没有问题的,然后在IOS系统上显示是NAN。

原因是 IOS系统只识别 " / " 不识别 " - "

 高版本的ios展示'yyyy-MM-dd'会出现NaN-NaN-NaN出现兼容性问题

1 new Date(date).Format("yyyy/MM/dd") //在ios会出现NaN展示问题
2 
3 date = date.replace('-'.'/')
4 new Date(date).Format("yyyy/MM/dd") //安卓ios展示正常通用

后台返回来的时间类型一般有三种 时间、时间搓、字符串。我们就研究一下这三种类型怎么 处理才能兼容安卓系统和IOS系统吧。

1 formatTime(d) {
2   var year = d.getFullYear();
3   var month = d.getMonth() + 1;
4   var date = d.getDate();
5   var hour = d.getHours();
6   var minute = d.getMinutes();
7   var second = d.getSeconds();
8   return year + "/" + (D[month] || month) + "/" + (D[date] || date) + " " + (D[hour] || hour) + ":" + (D[minute] || minute) + ":" + (D[second] || second);//必须是‘/’格式
9 }

一、字符串类型  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

1 var date = 1565776169000; //必须是数值类型,必须是13位数
2 var newDate = new Date(date);
3 var newDateTime = dateFormater.formatTime(newDate) // 2019/08/14 17:49:29

三、时间类型 2019-08-09T18:23:27.000+0800

1 var date = '2019-08-09T18:23:27.000+0800';
2 var data = date.substr(0, 19); //'2019-08-09T18:23:27'
3 var newDate = new Date(data.replace(/T/g, ' ').replace(/-/g, '/'));

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM