日期倒计时不正确

时间:2017-03-15 18:21:05

标签: javascript html angularjs angularjs-directive countdown

我正在使用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 {start:Sun Oct 29 2017 00:00:00 GMT-0200(Horáriobrasileirodeverão),结束:2017年3月15日星期三15:11:13 GMT-0300(Hora oficial do Brasil),单位:2047 ,价值:-19640926732,千禧年:0 ......}

inserir a descrição da imagem aqui

3 个答案:

答案 0 :(得分:1)

看起来countdownjs正如您所希望的那样工作。

您选择使用所有单位(倒计时.ALL),因此您应该查看其他单位(仅 查看日期,小时,分钟和秒)。

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

如果您想要天数,可以从Timespan对象中的毫秒获取,例如:

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

答案 1 :(得分:1)

您正在以变量单位拾取所有内容,从而导致添加周和月。 使用单位变量如下:

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

所以他们只会添加日,小时,分钟和秒。

答案 2 :(得分:0)

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

来自countdown.js文件

功能倒计时(开始,结束,单位,最大,数字){

喜欢这个

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