Нашел небольшой скрипт, который автоматически запускает видео с Youtube в определенное время (автовебинар). Например, в 20:00, 22:00 и тд . Если пользователь открыл видео в 20:10, то плеер автоматически мотает видео на 10-ю минуту. Не разберусь, как давать разный набор инструкций, если пользователь открыл страницу: до начала вебинара (до 19:55) (пришел раньше) в течение 20 минут после старта (20:20) (пришёл вовремя) позже 30 минут после старта. В коде есть комментарий капсом, где я пытаюсь создавать разный набор инструкций. Благодарю за помощь. Новичок, делаю методом научного тыка. Помогите дописать код для себя. <script src="playerjs.js" type="text/javascript"></script> <div id="player"></div> <button onclick="seekToTime()">Перейти</button> Код (Javascript): /* var now = new Date(); // Текущая дата var event_date = new Date ("Jul 17 2018 11:30:00 GMT+0300"); // дата события (+ часовой пояс, крайне обязательно) var dif_time = now.getTime() - event_date.getTime(); // разность в милисикундах по UTC (время приведено в один часовой пояс, крайне удачно) var duration = 60 * 60 * 1000; // время длительности вебинара в милисекундах switch(true) { case dif_time < 0: // действия до события break; case dif_time >= 0 && dif_time < duration: // действия во время события до окончания, (dif_time / 1000) - куда перематывать break; case dif_time >= duration: // действия после окончания события break; } var event_date = new Date ("Jul 17 2018 11:30:00 GMT+0300"); var now = new Date(); // Текущая дата var event_date = new Date((now.getFullYear() + '.' + (now.getMonth() + 1) + '.' + now.getDate()) + " 11:30:00 GMT+0300"); Кейс case dif_time < 0 убирается и вместо него добавляются такие кейсы: var before_time = 30 * 60 * 1000; // время длительности предстартового периода в милисекундах switch(true) { case -dif_time > before_time: // действие до начала предстартового периода break; case -dif_time <= before_time && dif_time < 0: // действие в предстартовый период break; .... } */ var player = new Playerjs({id:"player", poster: "people.png", file:"video.mp4"}); console.log(player.api("id")); function startWebinar(){ player.api("play"); } function unmute(){ player.api("unmute"); } function seekToTime(){ player.api("seek", playTimeOffset); } //var now = new Date(); // Текущая дата //var event_date = new Date ("Jul 17 2018 11:30:00 GMT+0300"); // дата события (+ часовой пояс, крайне обязательно) var event_date = new Date((now.getFullYear() + '.' + (now.getMonth() + 1) + '.' + now.getDate()) + " 00:03:00 GMT+0000", 'Europe/London'); var dif_time = now.getTime() - event_date.getTime(); // разность в милисикундах по UTC (время приведено в один часовой пояс, крайне удачно) var duration = 60 * 60 * 1000; // время длительности вебинара в милисекундах switch(true) { case dif_time < 0: // действия до события break; case dif_time >= 0 && dif_time < duration: // действия во время события до окончания, (dif_time / 1000) - куда перематывать break; case dif_time >= duration: // действия после окончания события //var wHour = "23"; //час старта вебинара //var wMinute = "20"; //минута старта вебинара //var wTime = wHour + ":" + wMinute; //время старта вебинара //let firstDate = wTime; //время старта вебинара //let firstDate = event_date; //время старта вебинара //вычисляем разницу между текущим временем (открытия страницы) и временем старта вебинара var currentDateTime = new Date(); var hrs = currentDateTime.getHours(); var mnts = currentDateTime.getMinutes(); var secondDate = (hrs+":"+mnts); //текущее время let getDate = (string) => new Date(0, 0,0, string.split(':')[0], string.split(':')[1]); let different = (getDate(secondDate) - getDate(firstDate)); let differentRes, hours, minuts; if(different > 0) { differentRes = different; hours = Math.floor((differentRes % 86400000) / 3600000); minuts = Math.round(((differentRes % 86400000) % 3600000) / 60000); } else { differentRes = Math.abs((getDate(firstDate) - getDate(secondDate))); hours = Math.floor(24 - (differentRes % 86400000) / 3600000); minuts = Math.round(60 - ((differentRes % 86400000) % 3600000) / 60000); } let result = hours + ':' + minuts; var playTimeOffset = (hours*3600)+minuts*60; //разница в секундах между временем открытия страницы и временем старта вебинара для функции seekToTime (плеер принимает в секундах и бросает в нужный момент видео) //назначаем время старта вебинара var now = new Date(); // Текущая дата var webinarStartTime = new Date(now.getFullYear(), now.getMonth(), now.getDate(), wHour, wMinute, 0, 0) - now; var timeOfWebinar = new Date(now.getFullYear(), now.getMonth(), now.getDate(), wHour, wMinute, 0, 0); console.log(timeOfWebinar); console.log(currentDateTime); //ПЫТАЮСЬ ДАТЬ РАЗНЫЙ НАБОР ИНСТРУКЦИЙ В ЗАВИСИМОСТИ ОТ ВРЕМЕНИ ОТКРЫТИЯ СТРАНИЦЫ //час после вебинара var hourAfter = new Date(); hourAfter = hourAfter.setHours(hourAfter.getHours() + 1); console.log(hourAfter, timeOfWebinar, webinarStartTime) //если текущее время больше на час if (hourAfter > timeOfWebinar){ player.api("stop"); //alert("Вы опоздали"); } if (currentDateTime.getTime() > timeOfWebinar.getTime()) { player.api("stop"); //alert("За полчаса"); } //если с начала вебинара еще не прошел 1 час, то запускаемм плеер else{ startWebinar(); seekToTime(); unmute(); //включаем звук } /** ЛОГИКА РАБОТЫ:в определенное время несколько развдень по Москве запускается воспроизведение видео через плеер. Если пользователь открыл страницу раньше до указаного начсала ато без 5 мин, то воспроизведение не начинается автоматически, при попытке его запустить - незапускется, а дальше продолжает показываться GIF анимация ожидания трансляции Если открывает позже, то плеер начинает воспроизведение видео с той минуты, с которой пользователь вошел на вебинар от его начала, то есть с 20:00. если зашел в 20:07, то видео начинает играть с 7-ой минуты ---- по окончанию выходим в расписание как бы еще таймер времени сюда прикрутить */