我试图用我在网站上创建的时钟显示时间,所以我使用setInterval每秒显示时间。 但是它只运行一次,我不知道该怎么办。 但是,Firefox在我的代码中没有发现任何错误。
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
bool dateProb(std::vector<Date> dateVec, Date date) {
return (dateVec[0] < date);
}
/*** R
x <- as.Date("2019/05/04")
y <- as.Date("2019/05/03")
dateProb(x, y)
dateProb(y, x)
*/
> x <- as.Date("2019/05/04")
> y <- as.Date("2019/05/03")
> dateProb(x, y)
[1] FALSE
> dateProb(y, x)
[1] TRUE
我希望以后可以在代码中清除此间隔。
答案 0 :(得分:0)
我的猜测是,window.onload
在创建间隔后会触发 ,因此在间隔处理程序中,display_{hours,minutes,seconds}
是未定义的,并且会导致代码崩溃。
尝试从onload
处理程序中开始间隔:
window.onload = function() {
display_hours = document.getElementById("hour");
display_minutes = document.getElementById("minute");
display_seconds = document.getElementById("second");
var go_time = setInterval(time_on, 1000);
};
编辑:此外,请确保每次实际更新date
:
function time_on() {
date = new Date();
...
}
答案 1 :(得分:0)
这是一个简单的时钟:
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}; // add zero in front of numbers < 10
return i;
}
并放在正文中:
<body onload="startTime()">