ios时间转换NaN问题记录

问题

拿到后后台返回的时间,只展示年月日,通过new Date()重新获取一下在拼接,结果在ios会显示NaN-NaN-NaN
后台返回时间:
在这里插入图片描述
原格式化代码:
直接使用了yyyy-MM-dd格式进行格式化

export function time (value) {
  const date = new Date(value)
  const y = date.getFullYear()
  let MM = date.getMonth() + 1
  MM = MM < 10 ? '0' + MM : MM
  let d = date.getDate()
  d = d < 10 ? '0' + d : d
  let h = date.getHours()
  h = h < 10 ? '0' + h : h
  let m = date.getMinutes()
  m = m < 10 ? '0' + m : m
  let s = date.getSeconds()
  s = s < 10 ? '0' + s : s
  return y + '-' + MM + '-' + d 
}

解决

ios不支持yyyy-MM-dd的格式转换,需要使用yyyy/MM/dd
使用正则把-替换成/进行拼接就可以了

export function time (value) {
  let ree = value.replace(/\-/g,'/')
  const date = new Date(ree)
  const y = date.getFullYear()
  let MM = date.getMonth() + 1
  MM = MM < 10 ? '0' + MM : MM
  let d = date.getDate()
  d = d < 10 ? '0' + d : d
  let h = date.getHours()
  h = h < 10 ? '0' + h : h
  let m = date.getMinutes()
  m = m < 10 ? '0' + m : m
  let s = date.getSeconds()
  s = s < 10 ? '0' + s : s
  return y + '-' + MM + '-' + d 
}

版权声明:本文为A_Brave原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。