带有date.now()的javascript计时器事件

时间:2019-04-08 03:50:44

标签: javascript jquery timer

每次有“ tick”服务器端,都会调用 gameTime()函数。我的问题是 if 语句从不进行比较,因此这从不允许我更新div。同样,当 gameTime()被调用时,它不会重置或停止 elapsedTime ,它只会启动一个新的事件,它们可以并排运行,无限的事件和无限的时间。

function gameTime (str) {
    var timeAndDate = '';
    var elapsedTime = '';
    var interval = '';
    var startTime = '';
    var game_time = str.match( /<time (.*)>/ );
    var game_date = str.match( /<date (.*)>/ );
    if ( game_time && game_date ) {
        game_time = game_time[1].match( /(.*) (.*) (.*)/ );
        game_date = game_date[1].match( /(.*) (.*) (.*)/ );
        timeAndDate = game_time[1] + ':00 ' + game_time[2] + ' ' + game_time[3] + ' - ' + game_date[1] + ' ' + game_date[2] + ', ' + game_date[3];

        // Tick timer
        startTime = Date.now();
        interval = setInterval(function() {
            elapsedTime = Date.now() - startTime;
            if ( elapsedTime == "18750" ) {
                timeAndDate = game_time[1] + ':15 ' + game_time[2] + ' ' + game_time[3] + ' - ' + game_date[1] + ' ' + game_date[2] + ', ' + game_date[3];
                $("#timeAndDate").text(timeAndDate);
                console.log("15");
            }
            if ( elapsedTime == "37500" ) {
                timeAndDate = game_time[1] + ':30 ' + game_time[2] + ' ' + game_time[3] + ' - ' + game_date[1] + ' ' + game_date[2] + ', ' + game_date[3];
                $("#timeAndDate").text(timeAndDate);
                console.log("30");
            }
            if ( elapsedTime == "56250" ) {
                timeAndDate = game_time[1] + ':45 ' + game_time[2] + ' ' + game_time[3] + ' - ' + game_date[1] + ' ' + game_date[2] + ', ' + game_date[3];
                $("#timeAndDate").text(timeAndDate);
                console.log("45");
            }
            console.log(elapsedTime);
        }, 100);
        $("#timeAndDate").text(timeAndDate);
    }
}

0 个答案:

没有答案