前端在ios和mac中处理时间的一些总结(坑)

由于js运行环境不一致(引擎),导致苹果设备相关时间没有达到预期效果,这里做一个备份。

xxxx-xx-xx xx:xx:xx形式


// 类似 2016-06-08 12:30:05
// 这种时间iOS并不兼容,出现未定义的时间格式 所以用下面的函数转一下成2016/06/08再使用Date对象就可

function formatStr(str) {
    return str.replace(/-/g,"/");
}


ISO 8601标准格式


// 类似 "2021-03-04T03:02:40.278Z" "2021-03-04T11:03:20+08:00" 等符合iso 8601标准格式的表示法(但是要区分是否加了时区)

// 这种时间直接用 new Date()格式化失败 iOS并不兼容,出现未定义的时间格式NaN

// 所以我们需要知道格式的含义,写一个截取方法就可以了

function isoTimeFormat (time){
  let date = time.substr(0, 10); //年月日
  let hours = time.substring(11, 13);
  let minutes = time.substring(14, 16);
  let seconds = time.substring(17, 19);
  let timeFlag = date + ' ' + hours + ':' + minutes + ':' + seconds;
  timeFlag = timeFlag.replace(/-/g, "/");
  timeFlag = new Date(timeFlag);
  timeFlag = new Date(timeFlag.getTime() + 8 * 3600 * 1000).getTime();// 这里加了东八时区
  return timeFlag;
}

// 我这里只需要时间戳形式,所以返回了时间戳

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值