<!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不是一个函数”,它拒绝继续。我想做的就是指明它是否在一定时间之后我们是开放,关闭还是午餐。时间表从未真正改变,所以它不需要比这更先进。
答案 0 :(得分:2)
concat()用于连接两个数组。你只想加入两个字符串。尝试
var time = hours.toString() + mins.toString();
答案 1 :(得分:1)
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);