解决JavaScript中date在ios上面NAN不兼容问题

  • 这两天搞手机页面中,发现一个坑,分享出来让大家看看吧。

吃水不忘挖井人

  • 开发的时候,全是在Google浏览器上查看的,后来用自己的手机看下手机上的效果的时候,发现了一个很神奇的问题,出现NAN。
  • 如图:


在这里插入图片描述
在这里插入图片描述

  • 借助那位大哥的博客,帮我解决了这个问题,原来是因为new Date(‘2019-01-01’);中的字符串中的"-“的原因,在ios上面导致的不兼容,要使用”/“替换”-"便可解决。
  • 开始上菜:
  //时间格式化
  Date.prototype.Format = function (fmt) {
      var o = {
          "M+": this.getMonth() + 1,                 //月份
          "d+": this.getDate(),                    //日
          "h+": this.getHours(),                   //小时
          "m+": this.getMinutes(),                 //分
          "s+": this.getSeconds(),                 //秒
          "q+": Math.floor((this.getMonth() + 3) / 3), //季度
          "S": this.getMilliseconds()             //毫秒
      };
      if (/(y+)/.test(fmt))
          fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
      for (var k in o)
          if (new RegExp("(" + k + ")").test(fmt))
              fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
      return fmt;
  }

这里使用的vue的拦截器进行调用时间格式化的方法,因为有涉及到公司代码,所以打上一些马赛克

在这里插入图片描述
在这里插入图片描述

解决代码:
formatDate: function (time) {
	time = time.replace(/\-/g, "/");
	return new Date(time).Format('yyyy-MM');
}

一入前端深似海啊!坑真的多。以后多多注意吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值