zoukankan      html  css  js  c++  java
  • Javascript实现时间倒计时

    在本人最近制作的一个Demo中,需要在页面上实现时间倒计时功能。在参考网上一些现有代码的基础上,形成了一套兼容各种浏览器的时间倒计时代码。代码如下:

     1  function DateDiff(startTime,latestTime) {
    2 var aDate, oDate1, oDate2;
    3 var ihours, imin, isec;
    4
    5 aDate = latestTime.split("-");
    6 oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
    7 if (isNaN(oDate1) == true) {
    8 var tempTime = aDate[2].split(' ');
    9 var time = tempTime[1].split(':');
    10 oDate1 = new Date(aDate[0], aDate[1], tempTime[0], time[0], time[1], time[2]);
    11 }
    12
    13 aDate = startTime .split("-");
    14 oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
    15 if (isNaN(oDate2) == true) {
    16 var tempTime = aDate[2].split(' ');
    17 var time = tempTime[1].split(':');
    18 oDate2 = new Date(aDate[0], aDate[1], tempTime[0], time[0], time[1], time[2]);
    19 }
    20
    21 ihours = parseInt((oDate1 - oDate2) / 1000 / 60 / 60);
    22 imin = parseInt(((oDate1 - oDate2) - ihours * 3600 * 1000) / 1000 / 60);
    23 isec = parseInt(((oDate1 - oDate2) - ihours * 3600 * 1000 - imin * 1000 * 60) / 1000);
    24
    25 return ihours + "小时" + imin + "分钟" + isec + "秒";
    26 }

    代码本身没有什么特别的地方,但是有一点需要注意:像IE*,Chrome浏览器都可以将yyyy-MM-dd形式的string 转换为正确的时间。而苹果的Safari浏览器却特立独行,不能识别。在这种情况下,如果想将某字符串转换为时间,需利用 new Date("年份","月份","日","小时","分钟","秒")方式来解决。经过验证,此代码可以在IE*、Chrome、Safari浏览器下正确执行(firefox的特性几乎和Chrome一样,估计在firefox环境下此代码也能正确执行,但没有经过实际验证)。
     

  • 相关阅读:
    张一鸣:平常心做非常事|字节跳动9周年演讲全文
    实验二:分词
    helm部署EFK收集应用日志,ingress-nginx日志解析。
    Terraform
    Windows 11 下载
    Kubernetes Pod中容器的Liveness、Readiness和Startup探针
    Kubernetes使用Keda进行弹性伸缩
    K8s 部署 Prometheus + Grafana
    CSDN & 博客园
    zipkin,pinpoint和skywalking对比
  • 原文地址:https://www.cnblogs.com/jizhong/p/2427629.html
Copyright © 2011-2022 走看看