Ребята, всем привет! В программировании не разбираюсь, но, собирая информацию по кусочкам, написал такой код, который автоматически заполняет и отправляет форму на сайте с интервалом в 1 секунду. Код выглядит так:
Вот, теперь стоит задача переделать этот код так, чтобы форма заполнялась и отправлялась только ОДИН раз в указанное время. При этом время отправки должно быть точным, вплоть до миллисекунд (время московское). Как можно реализовать такое? Вроде можно SetTimeout поставить. И еще, время московское и время серверное различаются? Дайте, пожалуйста, подсказку. Буду очень благодарен.
Всем спасибо за помощь в этом вопросе.
Во-первых, точность вам никто не гарантирует.
Сами методы setTimeout и setInterval не означают, что "должен сработать ровно через столько-то времени".
Они означают "пусть сработает не раньше такого-то времени". А как сработает, зависит от множества факторов.
Чтобы реализовать вашу задачу усилиями только скрипта, можете за 1 минуту до нужного вам времени запустить скрипт, который попытается вызвать setInterval с таймаутом 86400000 мс ровно в тот момент когда
new Date().getHours() === yourHours && ... дальше тоже самое вместо hours повторить с минутами, секундами, миллисекундами.
Здесь yourHours - переменная в которой указываете в который час должно произойти событие. И с минутами, секундами аналогично.
И далее ваш setInterval будет вызывать коллбэк с периодичностью 24 часа - можете сами выбрать периодичность. Я для примера привел чтобы работало раз в сутки.
Ну или можете каждый день запускать скрипт заранее.
А вообще такое лучше делать на сервере с помощью cron.