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

我想在时间到达(比如)下午3:00时触发一个javascript函数


时间将动态分配。那么是否有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的答案更容易理解。如果你不同意,我很抱歉。