7

我发现了一个 JSFiddle带有每秒计数的计时器。除了我希望它只需要几分钟和几秒钟。没有时间。

有任何想法吗?

4

6 回答 6

9
  • DATE_OBJ.getSeconds()获得秒的Date对象。
  • DATE_OBJ. getMinutes()获得分钟的Date对象。
  • setInterval每秒调用一次处理函数(1000ms)。

var handler = function() {
  var date = new Date();
  var sec = date.getSeconds();
  var min = date.getMinutes();
  document.getElementById("time").textContent = (min < 10 ? "0" + min : min) + ":" + (sec < 10 ? "0" + sec : sec);
};
setInterval(handler, 1000);
handler();
<h1 id="time" style="text-align: center"></h1>

于 2013-10-17T15:10:38.663 回答
7

这是一个非常hackish的方法 - http://jsfiddle.net/gPrwW/1/

HTML -

<div id="worked">31:14</div>

JS:

$(document).ready(function (e) {
    var $worked = $("#worked");

    function update() {
        var myTime = $worked.html();
        var ss = myTime.split(":");
        var dt = new Date();
        dt.setHours(0);
        dt.setMinutes(ss[0]);
        dt.setSeconds(ss[1]);

        var dt2 = new Date(dt.valueOf() + 1000);
        var temp = dt2.toTimeString().split(" ");
        var ts = temp[0].split(":");

        $worked.html(ts[1]+":"+ts[2]);
        setTimeout(update, 1000);
    }

    setTimeout(update, 1000);
});
于 2013-10-17T14:56:28.607 回答
5

处理此问题的确切方法如下:

  1. 存储脚本开始的时间
  2. 在重复调用的函数中获取经过的时间
  3. 将经过的时间转换为您想要的任何格式并显示它

示例代码:

var initialTime = Date.now();

function checkTime(){
  var timeDifference = Date.now() - initialTime;
  var formatted = convertTime(timeDifference);
  document.getElementById('time').innerHTML = '' + formatted;
}

function convertTime(miliseconds) {
  var totalSeconds = Math.floor(miliseconds/1000);
  var minutes = Math.floor(totalSeconds/60);
  var seconds = totalSeconds - minutes * 60;
  return minutes + ':' + seconds;
}
window.setInterval(checkTime, 100);

您可以轻松更改检查时间的粒度(当前设置为 0.1 秒)。这个计时器的优点是它在更新时永远不会不同步。

于 2013-10-17T15:05:35.633 回答
3

您可以创建一个函数,每次调用时都会增加一个计数器,将值显示为:counter/60 分钟,counter%60 秒

然后你可以使用这个setInterval函数让 JavaScript 每秒调用你的代码。它不是非常精确,但对于简单的计时器来说已经足够了。

于 2013-10-17T14:51:05.597 回答
2
var initialTime = Date.now();

function checkTime(){
var timeDifference = Date.now() - initialTime;
var formatted = convertTime(timeDifference);
document.getElementById('time').innerHTML = '' + formatted;
}

function convertTime(miliseconds) {
var totalSeconds = Math.floor(miliseconds/1000);
var minutes = Math.floor(totalSeconds/60);
var seconds = totalSeconds - minutes * 60;
return minutes + ':' + seconds;
}
window.setInterval(checkTime, 100);
于 2017-05-11T23:33:08.407 回答
0

这可能是什么? javascript中的普通计数计时器

它基于 setInterval 方法

setInterval(setTime, 1000);
于 2013-10-17T14:51:37.387 回答