显示倒计时的一段小脚本

  1. <div id="divTimeRemains">xxxx</div>
  2. <script language="JavaScript" type="text/javascript">
  3. String.prototype.leftPad = function(n, s) {
  4.     ss = s || " ";
  5.     if (this.length < n) {
  6.         var ts = new Array(n - 1);
  7.         ts[n - 1] = this;
  8.         for (var i = 0; i < n - this.length; i++) {
  9.             ts[i] = s;
  10.         }
  11.         return ts.join("");
  12.     } else {
  13.         return this;
  14.     }
  15. }
  16. Date.prototype.format = function(style) {
  17.     var o = {
  18.         "M+" : this.getMonth() + 1, //month
  19.         "d+" : this.getDate(),      //day
  20.         "h+" : this.getHours(),     //hour
  21.         "m+" : this.getMinutes(),   //minute
  22.         "s+" : this.getSeconds(),   //second
  23.         "w+" : "/u65e5/u4e00/u4e8c/u4e09/u56db/u4e94/u516d".charAt(this.getDay()),   //week
  24.         "q+" : Math.floor((this.getMonth() + 3) / 3),  //quarter
  25.         "S"  : this.getMilliseconds() //millisecond
  26.     }
  27.     if (/(y+)/.test(style)) {
  28.         stylestyle = style.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  29.     }
  30.     for(var k in o){
  31.         if (new RegExp("("+ k +")").test(style)){
  32.             stylestyle = style.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
  33.         }
  34.     }
  35.     return style;
  36. };
  37. //script's begin...
  38. var timeEnd = new Date(2009, 1, 16, 9, 0, 0);
  39. function showRemainsTime(){
  40.     var timeNow = new Date();
  41.     var timeRemains = timeEnd - timeNow;
  42.     var rs = [];
  43.     rs[rs.length] = "距离";
  44.     rs[rs.length] = timeEnd.format("yyyy年MM月dd日h点还有:");
  45.     rs[rs.length] = Math.floor(timeRemains/(1000 * 60 * 60 * 24));
  46.     rs[rs.length] = "天";
  47.     rs[rs.length] = (Math.floor(timeRemains/(1000 * 60 * 60)) % 24).toString().leftPad(2, "0");
  48.     rs[rs.length] = "小时";
  49.     rs[rs.length] = (Math.floor(timeRemains/(1000 * 60)) % 60).toString().leftPad(2, "0");
  50.     rs[rs.length] = "分";
  51.     rs[rs.length] = (Math.floor(timeRemains/1000) % 60).toString().leftPad(2, "0");
  52.     rs[rs.length] = "秒";
  53.     document.getElementById("divTimeRemains").innerHTML = rs.join("");
  54.     setTimeout("showRemainsTime()",1000);
  55. }
  56. showRemainsTime();
  57. //script's end...
  58. </script>

速度和效率应该都还行吧。想再快点,可以把1000 * 60 * 60这些值算出来。没算的原因是便于理解。采用了数组join的方式来提高字符串组合的速度。

 

 

http://blog.csdn.net/KimSoft/archive/2008/11/24/3361962.aspx

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值