javascript - 时间戳倒计时变为负数

标签 javascript

我有一个倒计时时间戳的脚本。它工作正常,但问题是它一直小于 0 变为负值。我希望它停在零。

// $nowtime is a date in future
var startLive = new Date("<?php echo $nowtime; ?>");
var timestamp = startLive - Date.now();

timestamp /= 1000; // from ms to seconds

function component(x, v) {
  return Math.floor(x / v);
}

var $div = $('.time');

timer = setInterval(function() {

  timestamp--;

  var days = component(timestamp, 24 * 60 * 60),
    hours = component(timestamp, 60 * 60) % 24,
    minutes = component(timestamp, 60) % 60,
    seconds = component(timestamp, 1) % 60;

  $div.html(days + " days, " + hours + ":" + minutes + ":" + seconds);


}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

Output looks like 1 Days, 6:10:30

问题是,如果它小于零,它仍然为负数。类似-3天,-3:-5:-5

如何在0处停止。

谢谢。

最佳答案

timer = setInterval(function() {

    /* if timestamp <= 0 return means skip rest of function */
    if(timestamp <= 0) {
        clearInterval(timer); 
        return;
    }

    timestamp--;

    var days    = component(timestamp, 24 * 60 * 60),
        hours   = component(timestamp,      60 * 60) % 24,
        minutes = component(timestamp,           60) % 60,
        seconds = component(timestamp,            1) % 60;

    $div.html(days + " days, " + hours + ":" + minutes + ":" + seconds);


}, 1000);

关于javascript - 时间戳倒计时变为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42620913/

相关文章:

javascript - 检测 video.load 是否成功 - javascript

c# - @Html.Dropdownlist C# MVC 4 当 bool = true 时显示 div

javascript - 通过 jquery 上下移动选择选项

javascript - 比较两个数组对象并找到唯一值

javascript - 与导出默认值一起使用时, "=>"在 javascript 中意味着什么?

javascript - 事件声明中是否需要 'function()'?

javascript - 如何从一个数组中的所有标签中获取所有文本?

javascript - 使用 Sinon stub pg-promise

javascript - 当我在完整日历中创建第二个事件时,会创建两个事件

javascript - jQuery 或 Javascript 模拟移动双击屏幕调整大小