Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
格式化倒计时Javascript_Javascript_Time - Fatal编程技术网

格式化倒计时Javascript

格式化倒计时Javascript,javascript,time,Javascript,Time,我正在使用以下代码显示一个计数时钟 分钟和秒的格式很好,但小时显示为负数,如“-238” var startTime=新日期(2011,01,21,08,55,0) $(文档).ready(函数(){ setTimeout(updatelock,1000); }); 函数updatelock(){ var timeField=$(“.timeSince”); var currentTime=新日期(); var差异=当前时间-开始时间; html(毫秒持续时间(差)); setTimeout(

我正在使用以下代码显示一个计数时钟 分钟和秒的格式很好,但小时显示为负数,如“-238”


var startTime=新日期(2011,01,21,08,55,0)
$(文档).ready(函数(){
setTimeout(updatelock,1000);
});
函数updatelock(){
var timeField=$(“.timeSince”);
var currentTime=新日期();
var差异=当前时间-开始时间;
html(毫秒持续时间(差));
setTimeout(updatelock,1000);
}
函数毫秒持续时间(n){
var hms=“”;
var dtm=新日期();
设置时间(n);
var h=“000”+数学楼层(n/3600000);
var m=“0”+dtm.getMinutes();
var s=“0”+dtm.getSeconds();
hms=h.substr(h.length-4)+“小时”+m.substr(m.length-2)+“分钟”;
hms+=s.substr(s.length-2)+“secs”;
返回hms;
} 

我认为问题是因为“startTime”大于“currentTime”。只需进行逆减法即可:

function updateClock() {
    var timeField = $(".timeSince");
    var currentTime = new Date();
    var difference = startTime - currentTime ;
    timeField.html(MillisecondsToDuration(difference));
    setTimeout(updateClock, 1000);
}

我不确定这是否是你想要的

function updateClock() {
    var timeField = $(".timeSince");
    var currentTime = new Date();
    var difference = startTime - currentTime ;
    timeField.html(MillisecondsToDuration(difference));
    setTimeout(updateClock, 1000);
}