Вызов функции javascript в определенное время суток
например, я хочу вызвать функцию js в 10.00.00.00.
как я могу это сделать?
<script type="text/javascript">
var now = new Date();
var millisTill10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 30, 0, 0) - now;
setTimeout(function{openAPage(), setInterval(openAPage, 60*1000)}, millisTill10)
function openAPage() {
var startTime = new Date().getTime();
var myWin = window.open("http://google.com","_blank")
var endTime = new Date().getTime();
var timeTaken = endTime-startTime;
document.write("<br>button [email protected]</br>")
document.write(new Date(startTime));
document.write("<br>page [email protected]</br>")
document.write(new Date(endTime));
document.write("<br>time taken</br>")
document.write(timeTaken);
myWin.close()
}
</script>
Я ожидаю от этого кода в 00.30, что он откроет Google, а затем через каждые 1 минуту он снова это сделает? Что не так с этим кодом?
Ответы
Ответ 1
Вам понадобится setTimeout, чтобы установить таймер и Date, чтобы рассчитать, как долго должен проходить таймер, пока он не активирует.
var now = new Date();
var millisTill10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 10, 0, 0, 0) - now;
if (millisTill10 < 0) {
millisTill10 += 86400000; // it after 10am, try 10am tomorrow.
}
setTimeout(function(){alert("It 10am!")}, millisTill10);
Ответ 2
Мое решение для запуска script в определенное время, btw без проверки ошибок для отрицательного таймаута.
//year, month 0-11, date, hour, min (can add ,sec,msec)
var eta_ms = new Date(2015, 0, 21, 17, 0).getTime() - Date.now();
var timeout = setTimeout(function(){}, eta_ms);
Ответ 3
Ну, вы можете использовать node пакет ontime
Ответ 4
Предполагая, что код расположен на веб-странице, которая будет загружена до 10:00, и все равно будет отображаться в 10:00, вы можете использовать setTimeout()
для настройки события с таймером. функция принимает некоторый оператор JS для выполнения и количество миллисекунд, прежде чем оно должно выполняться. Вы можете легко найти эту вторую часть со встроенными функциями даты.