• uni-app 时间格式问题 new Date(str) IOS系统跟Android系统不兼容


    今天做了一个需求,要在列表中把后台返回来的时间给显示出来,使用 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

  • 相关阅读:
    【leetcode】反转字符串
    【leetcode】反转字符串 II
    053-669
    053-668
    053-667
    053-666
    053-665
    053-664
    053-663
    053-662
  • 原文地址:https://www.cnblogs.com/qiu-Ann/p/11358803.html
Copyright © 2020-2023  润新知