有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

苹果ios中的Date()获取时间NaN的问题

javascript 炮渣日记 4周前 (11-10) 18次浏览 已收录 0个评论 扫描二维码

项目开发过程中难免会遇到倒计时,获取时间等类似的问题,然而ios端获取时间戳时发现,显示结果NaN(nont a number),安卓端显示是ok的。

***原因:Date()内时间格式问题***

  • ios使用如下方法获得NaN,安卓手机则是正常计算
new Date("2019-01-01 00:00:00").getTime()

解决方法:

  • 将时间格式中 ‘-’ 换成 ‘/’
new Date("2019/01/01 00:00:00").getTime()
  • 正则表达式替换方法
"2019-01-01 00:00:00".replace(/\-/g, '/')

以下是一个倒计时的简单案例

function countTime() {
  //获取当前时间
  var date = new Date();
  var now = date.getTime();
  //设置截止时间
  var endDate = new Date("2019/11/14 22:30:00");
  var end = endDate.getTime();
  //时间差
  var leftTime = end-now;
  //定义变量 d,h,m,s保存倒计时的时间
  var d,h,m,s;
  if (leftTime>=0) {
    d = Math.floor(leftTime/1000/60/60/24);
    h = Math.floor(leftTime/1000/60/60%24);
    m = Math.floor(leftTime/1000/60%60);
    s = Math.floor(leftTime/1000%60);
  }else{
    d = 0;
    h = 0;
    m = 0;
    s = 0;
  }

  //将倒计时赋值到div中(这里没有创建div标签,请自行创建)
  document.getElementById("_d").innerHTML = d;
  document.getElementById("_h").innerHTML = h;
  document.getElementById("_m").innerHTML = m;
  document.getElementById("_s").innerHTML = s;
  //递归每秒调用countTime方法,显示动态时间效果
  setTimeout(countTime,1000);
}
  countTime()
喜欢 (0)
炮渣日记
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址