Javascript concat() 没有正常工作

Javascript concat() not working as it should be

<!DOCTYPE html>
<html>
<script>
function myFunction() {
    var objDate = new Date();
    var hours = objDate.getHours();
    var mins = objDate.getMinutes();
    var time = hours.concat(mins);
    window.alert(time);
    if (time>=1600&&time<=0900) {
        document.body.style.background ="url('closed.png') no-repeat";
    } else if (time>=1230&&time<=1315) {
        document.body.style.background ="url('lunch.png') no-repeat";
    } else {
        document.body.style.background ="url('open.png') no-repeat";        
    }
}
setInterval(myFunction, 3000);
</script>
</html>

在第 8 行 "var time = hours.concat(mins);" 我得到 "Uncaught TypeError: undefined is not a function" 并且它拒绝继续。我想做的就是指定它是在某个时间段内开放、关闭还是在午餐时间。时间表从来没有真正改变过,所以它不需要比这更先进。

getHours() returns 一个数字,所以它没有 concat 方法,所以你的脚本应该抛出一个错误说 Uncaught TypeError: undefined is not a function

function myFunction() {
    var objDate = new Date();
    var hours = objDate.getHours()+'';
    var mins = objDate.getMinutes();
    var time = hours.concat(mins); //or hours + ':' + mins 
    window.alert(time);
}
setInterval(myFunction, 3000);

但是对于你的背景样式相关的计算,时间以分钟为单位会更好

function myFunction() {
    var objDate = new Date();
    var hours = objDate.getHours();
    var mins = objDate.getMinutes();
    var time = hours * 60 + mins;

    if (time >= 960 || time <= 540) {
        document.body.style.background = "url('closed.png') no-repeat";
    } else if (time >= 750 && time <= 795) {
        document.body.style.background = "url('lunch.png') no-repeat";
    } else {
        document.body.style.background = "url('open.png') no-repeat";
    }
}
setInterval(myFunction, 3000);

concat() 用于连接两个数组。你只想连接两个字符串。尝试

var time = hours.toString() + mins.toString();