Date.parse在android中和ios中的区别

这篇博客讨论了Date.parse在iOS和Android平台上的不同行为,特别是在处理'YYYY-MM-DDHH:mm:ss'格式日期字符串时。在Android上能够正确解析,但在iOS上会返回NaN。解决方案是将日期格式转换为'YYYY/MM/DDHH:mm:ss'。提供的代码示例展示了如何在日期格式转换中确保跨平台兼容性。
摘要由CSDN通过智能技术生成

Date.parse在android中支持解析YYYY-MM-DD HH:mm:ss格式的日期字符串
Date.parse在ios中不支持解析YYYY-MM-DD HH:mm:ss格式的日期字符串

如若使用Date.parse解析日期字符串,需将YYYY-MM-DD HH:mm:ss格式转为YYYY/MM/DD HH:mm:ss格式。

例如:

Date.parse('2022-07-22 11:11:11')
在安卓中得到的值是1658459471000
在ios中返回的值是NaN

附上:

// 时间函数
export const formatDate = (value, formatStr = 'YYYY-MM-DD') => {
  if (!value) {
    return '--'
  } else if (value.length === 8) {
    const i = value.replace(/(\d{4})(\d{2})(\d{2})/, '$1/$2/$3'); // 考虑后端通常返回的格式20200101
    if (Date.parse(i)) {
      return dayjs(value).format(formatStr)
    } else {
      return ''
    }
  } else { // 不考虑时间戳和年月日分别传入 实例Date的情况, ios中Date.parse不支持YYYY-MM-DD HH:mm:ss格式,应转换为YYYY/MM/DD HH:mm:ss
    value = value.replace(/-/g, '/')
    if (value instanceof Date || Date.parse(value)) {
      return dayjs(value).format(formatStr)
    } else {
      console.error(`formatDate方法未处理${value}参数成功`)
      return ''
    }
  } 
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值