Javascript 当时间到达特定时间时,如何触发函数
我想在时间到达(比如)下午3:00时触发一个javascript函数Javascript 当时间到达特定时间时,如何触发函数,javascript,jquery,Javascript,Jquery,我想在时间到达(比如)下午3:00时触发一个javascript函数 时间将动态分配。那么是否有javascript函数可以实现这一点???您只需计算当前时间和目标时间之间的差值,并使用该值即可 例如,根据目标浏览器解析日期的方式,您可以执行以下操作: function alert3pm() { alert("It's 3PM!"); } var timeAt3pm = new Date("1/31/2011 03:00:00 PM").getTime() , timeNow = new
时间将动态分配。那么是否有javascript函数可以实现这一点???您只需计算当前时间和目标时间之间的差值,并使用该值即可 例如,根据目标浏览器解析日期的方式,您可以执行以下操作:
function alert3pm() {
alert("It's 3PM!");
}
var timeAt3pm = new Date("1/31/2011 03:00:00 PM").getTime()
, timeNow = new Date().getTime()
, offsetMillis = timeAt3pm - timeNow;
setTimeout(alert3pm, offsetMillis);
或者更确切地说,在解析日期的过程中(因为浏览器之间确实不一致),您可以执行以下操作:
function getTimeAtHour(hour) {
var t = new Date();
t.setHours(hour);
t.setMinutes(0);
t.setSeconds(0);
t.setMilliseconds(0);
return t;
}
你想在下午3:00触发它,或者在特定的时间间隔检查是否超过了下午3:00?就像我想在每天下午3:00触发函数一样。。有点像闹钟。(虽然,时间将在以后动态分配)此操作不需要进行差异计算,不涉及时间段。当然,setTimeout需要一个时间段来等待(以毫秒为单位),该时间段应该是现在和“报警”时间之间的差。声明函数的语法不寻常-可能是出于示例目的,使用更标准的
函数alert3pm(){}
可能更清晰?@Basiclife:JavaScript用户应该更熟悉这两种功能。。。我不确定它们中的任何一个现在是否符合“更标准”的标准。@Matti Virkkunen我知道两者都同样有效,但由于OP不知道如何使用SetTimeout()
等待到指定的时间,他不太可能熟悉定义函数的替代技术。我并没有试图发动语法战,但我相信大多数JS教程倾向于使用function Name(){}
语法,因为它更接近其他语言中使用的实现。我只是想让OP的答案更容易理解。如果你不同意,我很抱歉。