欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信页面倒计时代码(解决safari不兼容date的问题)

程序员文章站 2023-11-19 12:09:22
话不多说,请看下面代码 pc: 1.html页面:
<...

话不多说,请看下面代码

pc:

1.html页面:

<div class="atime">
   <em id="t_d"></em>
   <em id="t_h"></em>
   <em id="t_m"></em>
   <em id="t_s"></em>
</div>

2.js:

<script type="text/javascript">
 function getrtime(){
  var end = "<?php echo $info['end_date']; ?>"+" 23:59:59";
  var endtime= new date(end);
  var nowtime = new date();
  var t =endtime.gettime() - nowtime.gettime();
  var d=0;
  var h=0;
  var m=0;
  var s=0;
  if(t>=0){
   d=math.floor(t/1000/60/60/24);
   h=math.floor(t/1000/60/60%24);
   m=math.floor(t/1000/60%60);
   s=math.floor(t/1000%60);
  }
  document.getelementbyid("t_d").innerhtml = d;
  document.getelementbyid("t_h").innerhtml = h;
  document.getelementbyid("t_m").innerhtml = m;
  document.getelementbyid("t_s").innerhtml = s;
 }
 setinterval(getrtime,1000);
</script>

以上代码在safari中出错,原因是:

在ios5以上版本(不包含ios5)中的safari浏览器能正确解释出javascript中的 new date('2013-10-21') 的日期对象。

但是在ios5版本里面的safari解释new date('2013-10-21') 就不正确,在ios5的safari中返回的永远是"invalid date"。

后来我在网上查找了资料,原来是低版本的safari解释new date('2013-10-21')这个对象不一样,在ios5中的safari不支持这种写法,

而它支持的写法为new date('2013','10','21'),这样写就能解决"invalid date"的问题,能返回一个javascript date回来了。

想要ios5中的safari能正确解析new date()那么必须这么写

new date('2013/10/21');   或者  var d = new date(date);d = d.getfullyear() > 0 ? d : new date(date.parse(date.replace(/-/g, "/")));

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!