为什么我不能增加计时器值?

Why I can't increment the chronometer value?

我想要一个计时器,我找到了下一个代码。问题是当我将 time = new Date(time - 1000); 更改为 time = new Date(time + 1000);

这是我的代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>My page</title>
    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <style>
        a{
        margin: 0 10px;
        color: gray;
        }
        .time{
            font-size: 50px;
            margin: 20px;
            font-family: monospace;
        }
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <script>
        var startValue = 1000; //Number of milliseconds
        var time = new Date(startValue);
        var interv;
        $(function(){
            displayTime();
            $(".start").on("click", function(){
            interv = setInterval(function(){
                //time = new Date(time - 1000);
                time = new Date(time + 1000);
                displayTime();
            }, 1000);
            });
            $(".stop").on("click", function(){
                clearInterval(interv);
                time = new Date(startValue);
                displayTime();
            });
            $(".pause").on("click", function(){
                clearInterval(interv);
            });
            $(".reset").on("click", function(){
                time = new Date(startValue);
                displayTime();
            });
        });

        function displayTime(){
            $(".time").text(fillZeroes(time.getMinutes()) + ":" + fillZeroes(time.getSeconds()));
        }

        function fillZeroes(t){
            t += "";
            return t.length==1? "0" + t : t;
        }
    </script>
</head>
<body>
<a href="#" class="start">start</a>
<a href="#" class="stop">stop</a>
<a href="#" class="pause">pause</a>
<a href="#" class="reset">reset</a>
<div class="time"></div>
</body>
</html>

如何增加时间? 谢谢!

使用date.getTime() 从日期对象中获取时间戳。在你的情况下:

time = new Date(time.getTime() + 1000);

演示:https://plnkr.co/edit/G8yo5l4wHe2yv9S3fjLI?p=preview

尝试这个解决方案https://jsfiddle.net/giuseppe_straziota/eag01ojj/

$(".start").on("click", function(){
            interv = setInterval(function(){                
                                time.setSeconds(time.getSeconds() + 1);
                displayTime();
            }, 1000);
 });

问题是您尝试用另一个 Date 对象作为参数来实例化 Date 对象。

var time = new Date(startValue);
...
time = new Date(time + 1000);

下次尝试使用console.log()进行调试。

您还有其他一些问题,例如为什么您的计数器从 1 而不是 0 开始?

这是一个可以解决所有问题的快速工作示例:https://jsfiddle.net/r6k06w40/3/