Здравствуйте. Решил поразвлечься изучая JS и пришел в тупик. Написал такой код
function daaays () {
today = new Date();
BigDay = new Date("May 29, 2017 09:00:00")
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
vk.addListener.messages(function(msg) {
if(msg.body == "!exam")msg.send("До русского языка осталось:\n" + daysLeft + " дней\n" + hrsLeft + " часов\n" + minsLeft + " минут\n" + "Времени мало, но вы там держитесь :3");
if(msg.body == "!Экзамен")msg.send("До русского языка осталось:\n" + daysLeft + " дней\n" + hrsLeft + " часов\n" + minsLeft + " минут\n" + "Времени мало, но вы там держитесь :3");
if(msg.body == "!экзамен")msg.send("До русского языка осталось:\n" + daysLeft + " дней\n" + hrsLeft + " часов\n" + minsLeft + " минут\n" + "Времени мало, но вы там держитесь :3");
if(msg.body == "!время")msg.send("До русского языка осталось:\n" + daysLeft + " дней\n" + hrsLeft + " часов\n" + minsLeft + " минут\n" + "Времени мало, но вы там держитесь :3");
}); }
setInterval(daaays, 50000);
Он должен считать время до заданного события (тут это экзамен, допустим) и писать его в ЛС по команде. Но не совсем понимаю, как перезапустить функцию. В том виде, какой я представил выше, функции тупо плодятся по таймеру, и в ответ (после 100000мс) приходят 2+ ответа, что неправильно как то. Расскажите мне, пожалуйста, как переделать код так, чтобы время обновлялось, скажем, каждую минуту, но функции не плодились. Нужно либо делать именно перезапуск (а не запуск новой) функции, либо (как я думаю) производить вычисления в отдельной функции (и перезапускать ее), а значения переменных выносить из функции просто напросто в отдельную часть кода (не понимаю после C++ абсолютно, как это делать можно в JS). Заранее огромное спасибо!
UPD. Смог сам решить (мне так кажется) проблему. Переписал код вот так:
var daysLeft;
var hrsLeft;
var minsLeft;
function daaays () {
today = new Date();
BigDay = new Date("May 29, 2017 09:00:00");
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
return(0);
}
setInterval(daaays, 100, daysLeft, hrsLeft, minsLeft);
vk.addListener.messages(function(msg) {
if(msg.body == "!exam")msg.send("До русского языка осталось:\n" + daysLeft + " дней\n" + hrsLeft + " часов\n" + minsLeft + " минут\n" + "Времени мало, но вы там держитесь :3");
if(msg.body == "!Экзамен")msg.send("До русского языка осталось:\n" + daysLeft + " дней\n" + hrsLeft + " часов\n" + minsLeft + " минут\n" + "Времени мало, но вы там держитесь :3");
if(msg.body == "!экзамен")msg.send("До русского языка осталось:\n" + daysLeft + " дней\n" + hrsLeft + " часов\n" + minsLeft + " минут\n" + "Времени мало, но вы там держитесь :3");
if(msg.body == "!время")msg.send("До русского языка осталось:\n" + daysLeft + " дней\n" + hrsLeft + " часов\n" + minsLeft + " минут\n" + "Времени мало, но вы там держитесь :3");
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Ребят, помогите с домашним заданием пожалуйстаКод почему не срабатывает
Добрый день! Подскажите, пожалуйста, плагин для автодополнения javascript, как в IDEЗдесь посоветовали плагин SublimeCodeIntel, я его установил, однако,...
Хочу реализовать подобие регистрации и авторизацииВо время сабмита регистрационной формы, собираю данные из ее полей и добавляю их в массив...