safari(苹果)浏览器计算天数时间差的兼容性问题

手头上有一个应用需要在safari浏览器中进行倒计时,一开始使用的是下面一个方法

 

function timeCount(){
  var cTime=$("#time").attr("startTime");//取到的时间为 2018/09/07 16:59:40 
  var ts = (new Date(cTime)) - (new Date()); //计算剩余的毫秒数
  var dd = parseInt(ts / 1000 / 60 / 60 / 24, 10); //计算剩余的天数
  var h = parseInt(ts / 1000 / 60 / 60 % 24, 10); //计算剩余的小时数
  var mm = parseInt(ts / 1000 / 60 % 60, 10); //计算剩余的分钟数
  var ss = parseInt(ts/ 1000 % 60, 10); //计算剩余的秒数
  dd = checkTime(dd);
  hh = checkTime(h);
  mm = checkTime(mm);
  ss = checkTime(ss);
  var restTime=mm*60*1000+ss*1000;
  if(restTime>0){
    $("#time").text(mm + ":" + ss);
    window.setTimeout("timeCount()", 1000);
  }else if(restTime<=0){
    $("#time").text("00:00");
  }
}

function checkTime(i) {
  if (i < 10) {
    i = "0" + i;
  }
  return i;
}

 

在谷歌浏览器上市正常的,但是一到safari上就起不了作用了,后来查了一下发现是safari浏览器不支持yyyy-mm-dd这种日期格式,换成yyyy/mm/dd,就没问题。所以手动添加了一个方法转换一下日期格式就可以正常运行了

function formatDate(time){
  var date = new Date(Date.parse(time.replace(/-/g, "/")));
  return date
}

posted on 2018-09-07 17:18  弦音  阅读(502)  评论(0)    收藏  举报

导航