解决iPhone手机时间格式化“NAN“问题

这是之前做项目时遇到的问题,今天就总结、记录一下吧。

一直都有在做手机端的项目(微信小程序、vue移动端),然后最初时,遇到苹果手机时间格式化"NAN"问题。当时一脸懵,后来上网查了下才知道问题所在。

后台返回来的数据是createTime="2020-10-10 12:12:12"

iphone手机是不能对这种格式的时间进行格式化,需要把-改成/,也就是"2020/10/10 12:12:12"。如下方法可以解决这个问题。调用:formatDate(time, "yyyy-MM-dd")

//时间格式化
function formatDate(date, fmt) { 
  if (date == null || date == '' || date == undefined)
    return null;
  try {
    //解决ios手机时间格式化NAN问题
    if(typeof(date) == "string" &&  date.indexOf('-') != -1){
      date = date.replace(/-/g,'/');
    }
    date = new Date(date);
  } catch (e) {
    date = date;
  }
  fmt = fmt ? fmt : 'yyyy-MM-dd';
  var o = {
    "M+": date.getMonth() + 1, //月份 
    "d+": date.getDate(), //日 
    "H+": date.getHours(), //小时 
    "m+": date.getMinutes(), //分
    "s+": date.getSeconds(), //秒 
    "q+": Math.floor((date.getMonth() + 3) / 3), //季度 
    "S": date.getMilliseconds() //毫秒 
  };
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.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;
}

 建议:为了避免这个问题,建议让后台返回的是时间戳

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值