简单的时区时钟功能陷入不正确的条件,我不知道为什么



我实现了一个简单的时区时钟,它在某种程度上不会根据不同的时区改变时间,经过一些调试后,我发现它属于不正确的"if"条件。下面是代码:

var zone = "ho";
alert("1"+zone);
var ft;
var dt = new Date();
var def = dt.getTimezoneOffset()/60;
var gmt = (dt.getHours() + def);
var ending = ":" + IfZero(dt.getMinutes()) + ":" +  IfZero(dt.getSeconds());            
alert("2"+zone);
if(zone = "local"){
    ft = (IfZero(dt.getHours()) + ":" + IfZero(dt.getMinutes()) + ":" + IfZero(dt.getSeconds()));
    alert("firelocal");
}else if(zone = "GMT"){
    var _GMT =check24(((gmt) > 24) ? ((gmt) - 24) : (gmt));
    ft = (IfZero(_GMT) + ":" + IfZero(dt.getMinutes()) + ":" + IfZero(dt.getSeconds()));
}else if(zone = "eniw"){
    var eniw =check24(((gmt + (24-12)) > 24) ? ((gmt + (24-12)) - 24) : (gmt + (24-12)));
    ft = (IfZero(eniw) + ending);
}else if (zone = "ho"){
    var ho =check24(((gmt + 8) > 24) ? ((gmt + 8) - 24) : (gmt + 8));
    ft = (IfZero(ho) + ending);
    alert("fireho");
}else{
    ft = "undefined";
}
alert("3"+zone);
document.getElementById("worldclock").innerHTML = ft;
setTimeout("worldclock()", 5000);

下面是alert的输出:

1ho
2ho
firelocal
3local

我现在真的很困惑,因为我不确定函数是如何落入if(zone =" local")条件的,即使我为了调试目的显式初始化了zone="ho"。

谁能告诉我我的函数出了什么问题?对不起,如果这个问题很愚蠢,我刚开始学习javascript。

你有:

if (zone = "local")

使得zone"local"的值。改变:

if (zone === "local")

最新更新