Прилетела задача: на странице регистрации на автовебинар сделать динамическую дату, которая будет автоматически меняться после наступления определённого времени.
Поиск готовых решений дал только скрипт, который автоматически менял дату после наступления 00:00 по Москве, а нужно было менять после 18:15, т. к. автовеб начинается в 19 часов. Т. е. после 18:15 должна проставляться дата следующего дня.
Код:
var months = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];
//Здесь в строке с if меняем часы и минуты. После этого времени дата меняется
var now = new Date();
if (now.getHours() > 18 && now.getMinutes() > 15) {
now.setDate(now.getDate() + 1);
}
var date = now.getDate();
//В конце строки вписываем время начало автовебинара
var textout = date + ' ' + months[now.getMonth()] + ' 19:00 МСК';
//В кавычках задаём класс элемента, в котором будет выводиться дата и время. Помните, что скрипт в коде страницы должен находиться ниже тега, в котором будет вывод.
document.querySelector(".webinar-date").textContent = textout;
Основа скрипта была найдена на StackOverflow, а знакомый разработчик помог добавить проверку по времени.
Код подойдёт для любого сайта и конструктора, в котором можно вставить HTML-блок или блок JavaScript. В том числе Tilda и другие. Возможно, придётся поэкспериментировать с местом выведения даты и времени.
Также учитывайте, что время скрипт берёт серверное. Если ваш сервер в другом часовом поясе, нужно будет прибавить или убавить часы в строке проверки времени:
var now = new Date();
if ((now.getHours() + 2) > 19 && now.getMinutes() > 15) {
now.setDate(now.getDate() + 1);
}