Php Javascript小时倒计时错误

Php Javascript小时倒计时错误,php,javascript,Php,Javascript,我有一个倒计时计时器,它使用以下脚本将时间从H:I:s传输到长版本: function parseTime() { var timeLeftStr; var timeLeft = 0; timeLeftStr = document.getElementById("timeleft").innerHTML; timeLeftStr.replace(/(\d+):(\d+):(\d+)/, function () { for (var i = 1; i < arguments.le

我有一个倒计时计时器,它使用以下脚本将时间从H:I:s传输到长版本:

function parseTime() {
var timeLeftStr;
var timeLeft = 0;

timeLeftStr = document.getElementById("timeleft").innerHTML;

timeLeftStr.replace(/(\d+):(\d+):(\d+)/, function () {
    for (var i = 1; i < arguments.length - 2; i++) {
        // Convert to ms
        timeLeft += arguments[i] * Math.pow(60, 3 - i) * 1000;
    }
});

countdown(new Date(timeLeft));
}

function countdown(timeLeft) {
var hours = timeLeft.getHours();
var minutes = timeLeft.getMinutes();
var seconds = timeLeft.getSeconds();

if (timeLeft.valueOf() == 0) {
    document.getElementById("timeleft").innerHTML = "0 seconds";
window.location = 'home.php?pageid=' + getURLParam("pageid");
    return false;
} else {
    document.getElementById("timeleft").innerHTML =
        (hours == 0 ? "" : hours + (hours == 1 ? " hour" : " hours")) +
        (minutes == 0 ? "" : (hours ? (seconds ? ", " : " and ") : " ") + minutes + (minutes == 1 ? " minute" : " minutes")) +
        (seconds == 0 ? "" : (hours || minutes ? " and " : "") + seconds + (seconds == 1 ? " second" : " seconds"));

    setTimeout(function () { countdown(new Date(timeLeft - 1000)); }, 1000);
}
}

window.onload = parseTime;
函数parseTime(){
var timeLeftStr;
var-timeLeft=0;
timeLeftStr=document.getElementById(“timeleft”).innerHTML;
timeLeftStr.replace(/(\d+):(\d+):(\d+)/,函数(){
对于(var i=1;i
错误在于,我的一个居住在澳大利亚的用户总是得到错误的“小时” 最初的计时器会说“23:45:05”,但当倒计时开始时,它会说“10小时45分5秒”,而不是23小时

知道为什么会这样吗?多谢各位

我不是很擅长JS,这是一个朋友创建的


最终解决了这个问题。

之所以会出现这种情况,是因为javascript从客户端获取当前的日期和时间:因此,在您的国家,当23点钟时,在世界的另一个地方,向页面发出请求的客户端将显示不同的时间(可能是一天)

如果你想在任何地方都显示相同的时间,你应该得到
服务器
的日期和时间,这样你就可以确保每个客户端的日期和时间都是相同的,或者你应该得到并应用一个偏移量


您可以查看类似的讨论:

我如何使它占用服务器时间?我如何确切地让脚本获取服务器时间而不是本地时间?对服务器端资源进行ajax调用,发送回小时、分钟和秒。如果听起来对您的功能来说太复杂,只需在javascript中使用
getTimezoneOffset()
。请看一下这个讨论:JavaScript对我来说也很复杂。我只写PHP。我会试着试一试,谢谢。我如何在我当前的脚本中实现它?实际上我不知道如何修复它,我最终会让它变得更糟。