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环境下此代码也能正确执行,但没有经过实际验证)。
     

  • 相关阅读:
    ModuleNotFoundError: No module named 'rest_framework_swagger'
    ModuleNotFoundError: No module named 'suit'
    HTTPS连接的前几毫秒发生了什么
    网络通信之 字节序转换原理与网络字节序、大端和小端模式
    聊聊HTTPS和SSL/TLS协议
    ECShop 调用自定义广告
    ECSHOP商城网站建设之自定义调用广告方法(二)
    https原理:证书传递、验证和数据加密、解密过程解析
    图解openssl实现私有CA
    SSL/TLS协议运行机制的概述
  • 原文地址:https://www.cnblogs.com/jizhong/p/2427629.html
Copyright © 2011-2022 走看看