2011-01-31 81 views
4

我想在时间到达时(例如3:00 PM)触发javascript功能。如何在时间到达特定时间时触发某个功能

时间将被动态分配。那么是否有任何JavaScript功能来实现?

+0

你想trigge准确地在下午3点,或者如果在下午3点通过了特定的时间间隔? – 2011-01-31 18:52:46

+0

就像我想在每天下午3点触发该功能一样。就像一个警报。 (虽然时间将在稍后动态分配) – ptamzz 2011-01-31 18:58:03

回答

7

您只需计算当前时间与目标时间之间的差异,并使用setTimeout()与该值。

例如,取决于你的目标浏览器如何解析的日期,你可以做到以下几点:

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); 

或者说,instaed解析日期(因为这是浏览器之间的真正矛盾),你可以做类似的这样的:

function getTimeAtHour(hour) { 
    var t = new Date(); 
    t.setHours(hour); 
    t.setMinutes(0); 
    t.setSeconds(0); 
    t.setMilliseconds(0); 
    return t; 
} 
相关问题