微信页面倒计时期码,date等日子函数在safari中遇见的坑

By admin in 4858美高梅 on 2019年8月24日

JavaScript的new date等日子函数在safari中遭受的坑,datesafari

近日在做活动Web的时候,在PC上用Chrome调节和测量检验都成功了,可是在索爱上真机一测就应时而生了意外的主题材料。经过一多级调节和测验开掘是日期相关的地点现身了难题。起首猜忌是生育处境的难点,但用Mac版的safari调试本地也出现了扳平的主题材料。查阅一些材质后开采,safari中对于JavaScript的new
Date函数的支撑有八个比较奇怪的主题素材。

经常,由于习贯了SQL中的datetime格式,日期是打成yyyy-mm-dd的格式,然则,safari竟然不扶助那样的格式,所以当你输入如下语句时,会再次来到空的年月。

new Date('2016-04-17');

Safari支持的格式是yyyy/mm/dd那样的,差距首要在于短横-与斜杠/,而斜杠那样的格式在其他大范围的浏览器中也都以能够不奇怪运营的,所以只须要都换来斜杠就足以了,调换函数如下所示:

new Date('2016-04-17'.replace(/-/g, "/"));

上述所述是作者给我们介绍的JavaScript的new
date等日子函数在safari中境遇的坑,希望对我们具备帮衬,若是我们有其余疑问请给自个儿留言,小编会及时过来大家的。在此也特别谢谢大家对帮客之家网址的援助!

date等日子函数在safari中相遇的坑,datesafari
前段时间在做运动Web的时候,在PC上用Chrome调节和测验都工作有成了,可是在HTC上真机一测就出现…

前不久在做运动Web的时候,在PC上用Chrome调节和测试都工作有成了,但是在魅族上真机一测就涌出了不测的难题。经过一多级调节和测量检验发现是日期相关的地点出现了难题。最早猜疑是生育情状的标题,但用Mac版的safari调节和测验本地也油可是生了扳平的主题素材。查阅一些资料后发觉,safari中对此JavaScript的new
Date函数的支撑有二个比较古怪的难点。

在js中管理Date时,发现Safari和别的浏览器的支撑办法不等同

话相当的少说,请看下边代码

万般,由于习于旧贯了SQL中的datetime格式,日期是打成yyyy-mm-dd的格式,然则,safari竟然不扶助那样的格式,所以当你输入如下语句时,会再次来到空的岁月。

1.例如:2017-01-01 12:00:00

微信页面倒计时期码,date等日子函数在safari中遇见的坑。PC:

new Date('2016-04-17');

4858美高梅,在其余浏览器中,使用那几个格式的字符串举行new
Date操作没不日常,不过在Safari中会提醒Invalid Date;

1.html页面:

Safari帮忙的格式是yyyy/mm/dd那样的,差距首要在于短横-与斜杠/,而斜杠这样的格式在其他周围的浏览器中也都以足以健康运作的,所以只须求都换到斜杠就可以了,转变函数如下所示:

Safari中不辅助’-‘格式的日期字符串,将其替换到’/’ 形成2017/01/01
12:00:00就能够正常使用

<div class="aTime">
   <em id="t_d"></em>
   <em id="t_h"></em>
   <em id="t_m"></em>
   <em id="t_s"></em>
</div>
new Date('2016-04-17'.replace(/-/g, "/"));

2.例如:2017/01/01T11:00:00

2.js:

如上所述是小编给大家介绍的JavaScript的new
date等日子函数在safari中遇到的坑,希望对大家全体扶助,假诺大家有任何疑问请给本身留言,小编会及时恢复生机大家的。在此也非常多谢咱们对台本之家网址的支撑!

此格式的日子字符串在Safari中也是不获得支持的,要求将字符串中的’T’  
替换来空格

<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不包容date的标题)
  • JS
    IOS/索爱的Safari浏览器不兼容Javascript中的Date()难题何以缓慢解决
  • JS中Safari浏览器中的Date

变成2017/01/01 11:00:00格式

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

下边是本人要好写的格式化日期字符串的函数,纵然并不周密,但是近年来也未有察觉怎么难点

在IOS5以上版本(不带有IOS5)中的Safari浏览器能科学解释出Javascript中的
new Date(‘二零一三-10-21’) 的日期对象。

/*格式化时间字符串*/
/*datetimeString:符合时间格式的时间字符串*/
/*返回格式化之后的时间字符串:YYYY-MM-DD hh:mm:ss*/
formatDatetime = function (datetimeString) {
  var datetime;
  if (isNaN(Date.parse(datetimeString)))
    datetime = new Date(Date.parse(datetimeString.replace(/-/g, '/').replace(/T/g, ' ')));
  else
    datetime = new Date(Date.parse(datetimeString));
  var year = datetime.getFullYear();/*年*/
  var month = datetime.getMonth() + 1;/*月*/
  var date = datetime.getDate();/*日*/
  var hour = datetime.getHours();/*时*/
  var minute = datetime.getMinutes();/*分*/
  var second = datetime.getSeconds();/*秒*/
  /*统一月,日,时,分,秒的格式*/
  month = month < 10 ? '0' + month : month;
  date = date < 10 ? '0' + date : date;
  hour = hour < 10 ? '0' + hour : hour;
  minute = minute < 10 ? '0' + minute : minute;
  second = second < 10 ? '0' + second : second;
  return year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second;
};

而是在IOS5版本里面包车型地铁Safari解释new Date(‘2012-10-21’)
就不得法,在IOS5的Safari中回到的千古是”Invalid Date”。

以上所述是小编给大家介绍的JS中Safari浏览器中的Date,希望对大家享有扶助,要是大家有任何疑问请给本人留言,作者会及时复苏我们的。在此也特别谢谢大家对剧本之家网址的支撑!

新生自己在网络查找了质感,原来是低版本的Safari解释new
Date(‘2012-10-21’)那几个指标不相同,在IOS5中的Safari不支持这种写法,

您恐怕感兴趣的文章:

  • 微信页面倒计时期码(化解safari不包容date的主题材料)
  • JS
    IOS/中兴的Safari浏览器不包容Javascript中的Date()难题怎么消除
  • JavaScript的new
    date等日子函数在safari中遇见的坑

而它辅助的写法为new Date(‘2012′,’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,
“/”)));

如上就是本文的全部内容,希望本文的原委对大家的上学或然专门的学问能推动一定的增援,同一时候也盼望多多支持脚本之家!

您大概感兴趣的稿子:

  • JS
    IOS/一加的Safari浏览器不包容Javascript中的Date()难题怎样化解
  • JavaScript的new
    date等日子函数在safari中遇见的坑
  • JS中Safari浏览器中的Date

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有