苹果手机显示时间NaN

一. 出现的问题

  1. 写一个倒计时功能,使用普通的写法(获取时间的毫秒数)
    new Date(“2019-1-5”).getTime();
    在安卓设备可以正常显示。在苹果设备上显示NaN
  2. 什么是NaN
    通常都是在计算失败时,作为 Math 的某个方法的返回值出现的(例如:Math.sqrt(-1))或者尝试将一个字符串解析成数字但失败了的时候(例如:parseInt(“blabla”))。
  3. 什么时候会返回NaN
    在做计算时,无穷大除以无穷大、给任意负数做开方运算 或者 算数运算符与不是数字或无法转换为数字的操作数一起使用时都将返回 NaN。

二. 解决方案

  1. 使用 new Date(time.replace(/-/g,’/‘)).getTime()
    利用正则将格式转换成时间的标准格式,也就是将原有的时间日期格式转成(2019-1-5 ===> 2019/1/5)

三. 问题的原因

  1. new Date(time1)这个构造函数无法正确的生成Date对象,其值为Invalid Date.
  2. 2019/1/5 这是时间的标准格式 被各大浏览器广泛支持 而2019-1-5 只有chrome能够很好的支持