Javascript时差错误

Javascript时差错误,javascript,date,Javascript,Date,我对下面的Javascript有问题。我正试图完成倒计时,但结果是,今天的倒计时时间低于1900小时 当当前时间为17:16:00时,给出剩余11:44:00。应该是1小时44分钟。它在某处增加了10个小时 任何关于我错在哪里的想法都已经改写了这篇文章,并得到了同样的结果。我知道它还不是干净的代码。我只是在开自动取款机 问候, var countDownDueTime = new Date('September 26, 2015 19:00:00') function updateClock(

我对下面的Javascript有问题。我正试图完成倒计时,但结果是,今天的倒计时时间低于1900小时

当当前时间为17:16:00时,给出剩余11:44:00。应该是1小时44分钟。它在某处增加了10个小时

任何关于我错在哪里的想法都已经改写了这篇文章,并得到了同样的结果。我知道它还不是干净的代码。我只是在开自动取款机

问候,

var countDownDueTime = new Date('September 26, 2015 19:00:00')

function updateClock() {
    var currentTime = new Date();
    var currentHours = currentTime.getHours();
    var currentMinutes = currentTime.getMinutes();
    var currentSeconds = currentTime.getSeconds();

    //Pad time to make 2 digit minutes and seconds
    currentMinutes = (currentMinutes < 10 ? "0" : "" ) + currentMinutes;
    currentSeconds = (currentSeconds < 10 ? "0" : "" ) + currentSeconds;

    var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds;

    $("#clock").html(currentTimeString);
    countDown(currentTime);
}

function countDown(currentTime) {
    var difference = new Date(countDownDueTime - currentTime);
    var currentHours = difference.getHours();
    var currentMinutes = difference.getMinutes();
    var currentSeconds = difference.getSeconds();

    //Pad time to make 2 digit minutes and seconds
    currentMinutes = (currentMinutes < 10 ? "0" : "" ) + currentMinutes;
    currentSeconds = (currentSeconds < 10 ? "0" : "" ) + currentSeconds;

    var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds;

    $("#countDown").html(currentTimeString);
}

$(document).ready(function() {
    setInterval('updateClock()', 1000);
})
var countDownDueTime=新日期('2015年9月26日19:00:00')
函数updatelock(){
var currentTime=新日期();
var currentHours=currentTime.getHours();
var currentMinutes=currentTime.getMinutes();
var currentSeconds=currentTime.getSeconds();
//焊盘时间为2位数的分和秒
currentMinutes=(currentMinutes<10?“0”:“)+currentMinutes;
currentSeconds=(currentSeconds<10?“0”:“)+currentSeconds;
var currentTimeString=currentHours+“:”+currentMinutes+“:”+currentSeconds;
$(“#时钟”).html(currentTimeString);
倒计时(当前时间);
}
函数倒计时(currentTime){
var差异=新日期(countDownDueTime-currentTime);
var currentHours=difference.getHours();
var currentMinutes=difference.getMinutes();
var currentSeconds=difference.getSeconds();
//焊盘时间为2位数的分和秒
currentMinutes=(currentMinutes<10?“0”:“)+currentMinutes;
currentSeconds=(currentSeconds<10?“0”:“)+currentSeconds;
var currentTimeString=currentHours+“:”+currentMinutes+“:”+currentSeconds;
$(“#倒计时”).html(currentTimeString);
}
$(文档).ready(函数(){
setInterval('UpdateLock()',1000);
})

截至2015年9月26日19:00:00的剩余时间取决于时区,但您没有指定时区,因此它将使用客户端计算机的时区。不同时区的客户端将看到剩余时间的不同值。您的修复可能只需在截止日期后添加时区即可:
新日期('2015年9月26日19:00:00 UTC')
btw,您应该更改
setInterval('updatelock()',1000)
设置间隔(updatelock,1000)。当你试图传递一个函数时,创建一个字符串并让setTimeout评估它是没有意义的。正如paulpro所说,我只想补充一点,你从服务器传递了你的当前时间。谢谢@paulpro,我从我的差值中减去36000000(10小时),它就解决了这个问题。还更新了setInterval()。2015年9月26日19:00:00之前的剩余时间取决于时区,但您没有指定时区,因此它将使用客户端计算机的时区。不同时区的客户端将看到剩余时间的不同值。您的修复可能只需在截止日期后添加时区即可:
新日期('2015年9月26日19:00:00 UTC')
btw,您应该更改
setInterval('updatelock()',1000)
设置间隔(updatelock,1000)。当你试图传递一个函数时,创建一个字符串并让setTimeout评估它是没有意义的。正如paulpro所说,我只想补充一点,你从服务器传递了你的当前时间。谢谢@paulpro,我从我的差值中减去36000000(10小时),它就解决了这个问题。还更新了setInterval()