2017-03-15 93 views
2

我正在使用Countdownjs在我的项目中插入一个计数,但它返回错误的一天。 我使用AngularJS,这是我为计数创建的指令:不正确的日期倒计时

.directive('tempoPercorrido', function($interval){ 
     return { 
      link: function(scope, element, attrs){ 
       var timeNow = new Date(attrs.tempoPercorrido); 
       var units = countdown.ALL; 
       var timespan = countdown(timeNow, null, units, 0, 0);      

       function updateTme(){ 
        var timespan = countdown(timeNow, null, units, 0, 0); 
        var dias = timespan.days <= 9 ? '0' + timespan.days.toString() : timespan.days.toString(); 
        var horas = timespan.hours <= 9 ? '0' + timespan.hours.toString() : timespan.hours.toString(); 
        var minutos = timespan.minutes <= 9 ? '0' + timespan.minutes.toString() : timespan.minutes.toString(); 
        var segundos = timespan.seconds <= 9 ? '0' + timespan.seconds.toString() : timespan.seconds.toString(); 

        var contador = '<div class="dias circulo">'+ dias + '</div>'+ 
          '<div class="horas circulo">'+ horas + '</div>'+ 
          '<div class="minutos circulo">'+ minutos + '</div>'+ 
          '<div class="segundos circulo">'+ segundos + '</div>'; 
        //console.log(timespan); 
        $(element).html(contador);  
       } 

       updateTme(); 

       $interval(function(){ 
        updateTme(); 
       }, 1000); 
      } 
     } 
    }) 

在HTML中,我输入以下数据:

<div class="horario_banner" tempo-percorrido="2017-10-29 00:00:00"></div> 

但是这个日期它返回06天08小时50分钟以及由此产生的秒数。 因为它实际上应该返回超过100天。

活动情况下,它返回的时间跨度控制台下式给出:

N {开始:太阳2017年10月29日00:00:00 GMT-0200(Horário巴西陆军德verão),结束:周三2017年3月15日15: 11:13 GMT-0300(霍拉公报做巴西),单位:2047,值:-19640926732,千年:0 ...}

inserir a descrição da imagem aqui

+0

我发现的问题是以var为单位,它也得到了一个月,而不仅仅是日,小时和分钟,问题是我不知道如何取月,只取日,小时,分钟和秒。 –

回答

1

您在变量单位挑选了一切,导致星期和月份也被添加。 使用单位的变量如下:

Var units = countdown.DAYS | Countdown.HOURS | Countdown.MINUTES | Countdown.SECONDS; 

因此,他们将只添加了天,小时,分钟和秒。

0

尝试用所有的参数初始化倒计时

countdown.js文档

功能倒计时(起点,终点,单位,最大值,数字){

像这样

var today = new Date(); 
function updateTme(){ 
       var timespan = countdown(today , timeNow, units, 0, 0); 
       var dias = ..... 
+0

错误的答案..在开始和结束之间感到困惑 –

1

看起来countdownjs正在工作,你打算。

你选择使用所有单位(countdown.ALL),所以你应该看看你的其他单位(你是只有看着天,小时,分钟和秒)。

Timespan对象的屏幕截图还显示7个月和1周。

如果你想天数,你可以从毫秒在时间跨度对象,例如:

var milliseconds = timespan.value * -1; // Since it's negative in your case 
var seconds = milliseconds/1000; 
var minutes = seconds/60; 
var days = minutes/1440;