-2

我想要的是一个 Javascript 中的计时器,它每天凌晨 2:00 关闭一次,当计时器关闭时会发出警报。我只是不知道该怎么做。

PS我在Javascript方面很糟糕,所以如果可以的话,你可以留下整个脚本,而不仅仅是做什么:)

4

2 回答 2

1

为了让 javascript 网页在未来的特定时间发出提示,您必须让浏览器在显示该页面的情况下运行。浏览器中网页中的 Javascript 仅在浏览器中当前打开的页面中运行。如果这确实是您想要做的,那么您可以这样做:

// make it so this code executes when your web page first runs
// you can put this right before the </body> tag

<script>
function scheduleAlert(msg, hr) {
    // calc time remaining until the next 2am
    // get current time
    var now = new Date();

    // create time at the desired hr
    var then = new Date(now);
    then.setHours(hr);
    then.setMinutes(0);
    then.setSeconds(0);
    then.setMilliseconds(0);

    // correct for time after the hr where we need to go to next day
    if (now.getHours() >= hr) {
        then = new Date(then.getTime() + (24 * 3600 * 1000));    // add one day
    }

    // set timer to fire the amount of time until the hr
    setTimeout(function() {
        alert(msg);
        // set it again for the next day
        scheduleAlert(msg, hr);
    }, then - now);
}

// schedule the first one
scheduleAlert("It's 2am.", 2);
</script>
于 2013-06-18T23:14:12.803 回答
1

这应该有效。

function alarm() {
  alert('my alert message');
  setAlarm();
}

function setAlarm() {
  var date = new Date(Date.now());
  var alarmTime = new Date(date.getYear(), date.getMonth(), date.getDate(), 2);
  if (date.getHours() >= 2) {
    alarmTime.setDate(date.getDate() + 1);
  }
  setTimeout(alarm, alarmTime.valueOf() - Date.now());
}
setAlarm();
于 2013-06-19T00:02:52.950 回答