场景

后端返回了一个时间字符串,形如:'2020-09-09 hh:mm:ss',然后前端业务需要判断当前时间是否大于/小于这个时间,于是就有了这样一个比较:

let date = new Date()
if(date < new Date(res.endTime) && date > new Date(res.startTime)) {
    // do something
}

然而这在安卓上运行正常,可是测试的时候在IOS上报错了。查阅一番得知,IOS不支持这种格式'2020-09-09 hh:mm:ss'new Date(),它只支持'2020/09/09 hh:mm:ss'这样的,而安卓下使用new Date()则两种格式都支持。

解决

把后端返回的时间格式转换一下,把'-'替换成'/'

// ios下-时间格式化不了,ios下把-替换为/
export function initIosTime (val) {
  if (isIOS()) {
    return val.replace(/\-/g, '/').replace('.0', '')
  }
  return val
}

ever
323 声望6 粉丝