将秒输出更改为分钟和小时

时间:2019-03-02 15:55:42

标签: javascript php countdown

我在我的项目中设置了一个倒计时系统,用户按小时输入他们想要保留的时间。即1、2、3、4小时等。然后开始倒数计时器,并在完成时通知他们。我在网上找到了一个非常不错的网站,但是它只针对剩余秒数进行倒计时。我想知道是否有人知道如何操纵此代码来显示hrs:minutes。

我已经尝试过w3schools,但是由于实际给定的未来时间而无法正常工作

        <!-- $_row["Time"] returns the number of hours hence must multiply by 3600 to get it in terms of seconds for this example to work -->
    <?php $remain= $_row["Time"] * 3600;  ?>



<script>
function countDown(secs,elem) {
    var element = document.getElementById(elem);
    element.innerHTML = "Time Remaining "+secs+" seconds";
    if(secs < 1) {
        clearTimeout(timer);
        element.innerHTML = '<h2>Your Time is up!</h2>';
        element.innerHTML += '<p>Please evacuate the parking space as soon as possible</p><br>';
        element.innerHTML += '<a href="Home.php">Return to Home</a>';
    }
    secs--;
    var timer = setTimeout('countDown('+secs+',"'+elem+'")',1000);
}
</script>
<div id="status"></div>
<script>countDown(<?php echo $remain ?>,"status");</script>

2 个答案:

答案 0 :(得分:1)

继续我的评论...

  

“我在网上找到了一个非常不错的人”-不,您没有。实际上,您可能发现了最坏的想象。将字符串传递给setTimeout?确切地说是依靠setTimeout吗? (提示:现在也不是,现在也没有指定)。最重要的是,“结束”条件甚至没有正确完成,因为它试图在设置之前清除超时...

尝试这样的方法。

function countDown(secs,elem) {
    var element = document.getElementById(elem);
    var targetTime = Date.now() + secs*1000;
    var timer;

    function formatTime(secs) {
        var hours = Math.floor(secs/3600);
        var minutes = Math.floor(secs/60)%60;
        var seconds = secs%60;
        var pad = function(n) {return n<10 ? "0"+n : n;};
        return hours+":"+pad(minutes)+":"+pad(seconds);
    }
    function tick() {
        var timeleft = Math.floor((targetTime - Date.now()) / 1000);
        element.innerHTML = "Time Remaining: "+formatTime(timeleft);
        if( timeleft < 0) {
            element.innerHTML = "Time up!";
            clearInterval(timer);
        }
   }

   timer = setInterval(tick, 200); // higher numbers are less precise
   tick(); // perform first update immediately
}

这将使用实际时间来确保结束时间是应该的时间!

答案 1 :(得分:0)

使用这样的代码

row_number()