我已经尝试了很长一段时间了,无法理解。我有一个显示实时时间的JavaScript。我想做的是建立一个if语句,说如果命中23:00:00,然后打开一个链接。有人可以帮忙吗?我用的任何东西都只是消隐时间:(
<script>
function startTime() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
m = checkTime(m);
s = checkTime(s);
document.getElementById('txt').innerHTML = h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
}
function checkTime(i) {
if (i < 10) {i = "0" + i};
return i;
}
</script>
</head>
<body onload="startTime()">
<div id="txt"></div>
答案 0 :(得分:1)
您已经计算出时间,只需检查一下是否是您想要的时间,然后open一个网址即可。
function startTime() {
var today = new Date('Thu Jul 26 2018 23:00:00 GMT-0700 (Pacific Daylight Time)')
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
if (h === 23 && m === 0 && s === 0) {
window.open('https://www.stackoverflow.com', '_blank');
}
m = checkTime(m);
s = checkTime(s);
document.getElementById('txt').innerHTML = h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
}
function checkTime(i) {
if (i < 10) {
i = "0" + i
};
return i;
}
<body onload="startTime()">
<div id="txt"></div>
</body>
答案 1 :(得分:1)
简单
...
document.getElementById('txt').innerHTML = h + ":" + m + ":" + s;
if (h == "23" && m == "00" && s == "00") {
alert("open link from here");
}
...
可以解决问题。
注意:
您还必须检查s
,否则每秒将打开一个新页面。
答案 2 :(得分:1)
每秒刷新:
function timeLoop(){
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
var timeString = h+":"+m+":"+s
// print time
document.getElementById('txt').innerHTML = h + ":" + m + ":" + s;
// check timeString
if ( timeString === "23:00:00"){
// perform you actions here
}
}
document.body.onload = function(){
setInterval( timeLoop, 1000 );
}
这里发生的是
在加载timeLoop
函数时,每秒开始循环,每个循环都会更新显示的时间并进行检查。
您可以在if语句旁边执行任何代码或函数。
希望这会有所帮助
答案 3 :(得分:0)
我认为只用一个简单的setInterval()
检查小时就可以了。以下代码设置了一个间隔,每1秒检查一次小时。如果小时为23,则会清除间隔,以确保触发的操作仅运行一次,然后执行您想做的任何事情。无需检查分钟和秒,因此您不必担心前导零。
var interval = window.setInterval(function(){
var h = new Date().getHours();
if (h === 23) {
// clear interval to ensure that code runs only once
window.clearInterval(interval);
// do whatever you like
console.log(h);
}
},1000);