Javascript concat() 无法正常工作

Javascript concat() not working as it should be

本文关键字:常工作 工作 concat Javascript      更新时间:2023-09-26
<!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);"我收到"未捕获的类型错误:未定义不是一个函数",它拒绝继续。我想做的只是指定它是否在特定时间之间,那么我们是开放、关闭还是午餐。时间表永远不会真正改变,所以它不需要比这更高级。

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

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

getHours()返回一个数字,因此它没有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);