起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1921|回复: 1

[分享] 多个活动同时倒计时的实现

[复制链接]

26

主题

128

帖子

522

积分

高级会员

Rank: 4

积分
522
QQ
发表于 2016-5-19 12:36:22 | 显示全部楼层 |阅读模式
  1. //        显示倒计时
  2.         Model.prototype.showTime = function(obj,time){
  3.    
  4.         var go = function(){     
  5.             for (var i = 0; i < list.length; i++) {   
  6.                     $(list[i].ele).text(getTimerString(list[i].time ? list[i].time -= 1 : 0));     
  7.                 if (!list[i].time)     
  8.                     list.splice(i--, 1);     
  9.             }     
  10.         };     
  11.    
  12.         var getTimerString = function (time) {     
  13. //                time = time.replace('T',' ');  
  14. //                                  time = time.replace(/\-/g,'/');
  15.                                   var time_end = new Date(time);
  16.                             var time_now = new Date();  // 获取当前时间
  17.                                 time_now = time_now.getTime();
  18.                             var time_distance = time_end - time_now;  // 结束时间减去当前时间
  19.                             var int_day, int_hour, int_minute, int_second;
  20.                             if(time_distance >= 0){
  21.                                 // 天时分秒换算
  22.                                 int_day = Math.floor(time_distance/86400000);
  23.                                 time_distance -= int_day * 86400000;
  24.                                 int_hour = Math.floor(time_distance/3600000)+'';
  25.                                 time_distance -= int_hour * 3600000;
  26.                                 int_minute = Math.floor(time_distance/60000)+'';
  27.                                 time_distance -= int_minute * 60000;
  28.                                 int_second = Math.floor(time_distance/1000)+'';
  29.                          
  30.                                 // 时分秒为单数时、前面加零站位
  31.                                 if(int_hour < 10)
  32.                                 int_hour = "0" + int_hour;
  33.                                 if(int_minute < 10)
  34.                                 int_minute = "0" + int_minute;
  35.                                 if(int_second < 10)
  36.                                 int_second = "0" + int_second;
  37.                                 
  38.                                 var hour1= int_hour.substr(0,1);
  39.                                 var hour2= int_hour.substr(1,1);
  40.                                 var minute1 = int_minute.substr(0,1);
  41.                                 var minute2 = int_minute.substr(1,1);
  42.                                 var second1 = int_second.substr(0,1);
  43.                                 var second2 = int_second.substr(1,1);
  44.                                 // 显示时间
  45.                                 return '剩'+int_day+'天'+hour1+hour2+'时'+minute1+minute2+'分'+second1+second2+'秒';
  46.                             }else{
  47.                                 return '已结束';
  48.                             }   
  49.         };
  50.         
  51.         var list = [],     
  52.             interval;
  53.         if (!interval)     
  54.             interval = setInterval(go, 1000);     
  55.         list.push({ ele: obj, time: time });     
  56.         
  57.         };
复制代码


在 bind-text 属性中添加 $model.showTime( $element ,val("endDate")),其中 $element 为当前元素,val("endDate")为需要传入的结束日期。

8

主题

28

帖子

102

积分

初级会员

Rank: 2

积分
102
发表于 2017-6-26 14:37:53 | 显示全部楼层
厉害厉害,成功的解决了我的问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-6-16 18:35 , Processed in 0.105750 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表