倒数值不断出现,而在JavaScript中未定义

问题描述 投票:-3回答:1

我知道有一种更简单的方法来制作倒数计时器,但我需要使用这三个功能。

我尝试将getRemainingTime函数的值作为数组返回,但是得到了相同的结果。

计时器说undefined Tage undefined:undefined:undefined

const ReleaseDate = new Date("April 01, 2020  12:00:00").getTime();

//Calculate Days,Hours,Minutes,Seconds left
function getRemainingTime(CurrentDate, ReleaseDate){
    const Differenz = ReleaseDate - CurrentDate;


    const d= Math.floor(Differenz / (1000*60*60*24));
    const h= Math.floor((Differenz / (1000*60*60*24)) / (1000*60*60));
    const m= Math.floor((Differenz / (1000*60*60)) / (1000*60));
    const s= Math.floor((Differenz / (1000*60)) / 1000);

//return multiple values as objects
    return {d:d, h:h, m:m, s:s};
}

//produce and return strings
function formatDays(days){
    return (days + " Tage ");
}

function formatTime(hours, minutes, seconds){
    return (hours + ":" + minutes + ":" + seconds);
}

function updateCountdown(){

    //repeat every second
    const TimerFunction = setInterval(function(){
    //calculate time now
    const CurrentDate = new Date().getTime();

    //call function to calculate days,hours,minutes,seconds
    getRemainingTime();

    //access Objects
    const values = getRemainingTime();
    const days = values.d;
    const hours = values.h;
    const minutes = values.m;
    const seconds = values.s;

    //call functions to produce strings
    formatDays();
    formatTime();

    document.getElementById("Countdown-Timer").innerText = formatDays() + formatTime();
    },1000)
}

//start updateCountdown function
updateCountdown();
javascript function timer undefined countdown
1个回答
0
投票
        const ReleaseDate = new Date("April 01, 2020  12:00:00").getTime();

        function getRemainingTime(CurrentDate, ReleaseDate) {
            const Differenz = ReleaseDate - CurrentDate;

            const d = Math.floor(Differenz / (1000 * 60 * 60 * 24));
            const h = Math.floor((Differenz / (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            const m = Math.floor((Differenz / (1000 * 60 * 60)) / (1000 * 60));
            const s = Math.floor((Differenz / (1000 * 60)) / 1000);

            return {
                d: d,
                h: h,
                m: m,
                s: s
            };
        }

        function formatDays(days) {
            return (days + " Tage ");
        }

        function formatTime(hours, minutes, seconds) {
            return (hours + ":" + minutes + ":" + seconds);
        }

        function updateCountdown() {

            const TimerFunction = setInterval(function () {
                    const CurrentDate = new Date().getTime();

                    getRemainingTime(CurrentDate, ReleaseDate);

                    const values = getRemainingTime(CurrentDate, ReleaseDate);
                    const days = values.d;
                    const hours = values.h;
                    const minutes = values.m;
                    const seconds = values.s;

                    formatDays(days);
                    formatTime(hours, minutes, seconds);

                    document.getElementById("Countdown-Timer").innerText = (formatDays(days) + formatTime(hours, minutes, seconds));
                }, 1000)

        }

        updateCountdown();
© www.soinside.com 2019 - 2024. All rights reserved.