URL скопирован в буфер обмена!

Как сделать автоматическую смену даты вебинара?

При помощи этой модификации можно сделать автоматическую смены даты на вашем сайте. Скрипт будет каждый день обновлять дату. Можно выбрать один из трех режимов смены даты, а также указать формат и время когда ее нужно обновить.

Модификация обновлена. Добавлено два новых режима смены дат. Добавлена возможность указывать минуты при смене даты.
Модификация работает с включенным Autoscale в блоках
Модификация работает с Zero Block и стандартными блоками
Номер модификации в библиотеке TiCode

Генератор кода

Ссылка для элемента
Формат даты
Тип разделителя
Во сколько меняем дату
Язык даты
Режим
На соклько дней вперед ставить дату
Набор своих дат через запятую
Дни недели на которые ставим дату
Войдите в аккаунт чтобы получить доступ к генератору кода
Этот генератор кода доступен только тем кто оплатил подписку
<!--TICODE--><!-- Библиотека модификаций для Тильда https://ticode.dev --> <!--TCD054--> <style> [href="#ti-data"] { pointer-events: none; text-decoration: none; cursor: default; } </style> <script> var TiDateFormat = 'DD.MM.YYYY'; var TiDaysToAdd = 1; var TiChangeTimeString = '1:00'; var TiCodeSeparator = '.'; var TiMode = 'standart'; var TiChangeDays = ['', '', '', '', '', '', '']; var TiChangeDates = []; function TicodeNewDate() { var now = new Date(); var changeDate = false; var [TiChangeTime, TiChangeMinutes] = TiChangeTimeString.split(':').map(Number); if (TiMode === 'standart') { if (now.getHours() > TiChangeTime || (now.getHours() === TiChangeTime && now.getMinutes() >= TiChangeMinutes)) { changeDate = true; } } else if (TiMode === 'day') { var currentDay = now.getDay(); var daysOfWeek = { 'Sunday': 0, 'Monday': 1, 'Tuesday': 2, 'Wednesday': 3, 'Thursday': 4, 'Friday': 5, 'Saturday': 6 }; var validChangeDays = TiChangeDays.filter(day => day !== ''); var targetDay = validChangeDays.map(day => daysOfWeek[day]).find(day => day >= currentDay); if (targetDay === undefined) { targetDay = daysOfWeek[validChangeDays[0]]; now.setDate(now.getDate() + (7 - currentDay + targetDay)); } else if (targetDay > currentDay) { now.setDate(now.getDate() + (targetDay - currentDay)); } else if (targetDay === currentDay) { if (now.getHours() > TiChangeTime || (now.getHours() === TiChangeTime && now.getMinutes() >= TiChangeMinutes)) { changeDate = true; } } } else if (TiMode === 'data') { var currentDate = now.getDate(); var nextDate = TiChangeDates.find(date => date > currentDate); if (nextDate === undefined) { now.setMonth(now.getMonth() + 1); nextDate = Math.min(...TiChangeDates); } else if (currentDate === nextDate) { if (now.getHours() > TiChangeTime || (now.getHours() === TiChangeTime && now.getMinutes() >= TiChangeMinutes)) { now.setMonth(now.getMonth() + 1); nextDate = Math.min(...TiChangeDates); } } while (true) { var testDate = new Date(now.getFullYear(), now.getMonth(), nextDate); if (testDate.getMonth() === now.getMonth()) { break; } now.setMonth(now.getMonth() + 1); nextDate = Math.min(...TiChangeDates); } now.setDate(nextDate); } if (changeDate) { now.setDate(now.getDate() + TiDaysToAdd); } var day = String(now.getDate()).padStart(2, '0'); var month = String(now.getMonth() + 1).padStart(2, '0'); var year = now.getFullYear(); if (TiDateFormat === 'DD.MM.YYYY') { return day + TiCodeSeparator + month + TiCodeSeparator + year; } else if (TiDateFormat === 'MM.DD.YYYY') { return month + TiCodeSeparator + day + TiCodeSeparator + year; } else if (TiDateFormat === 'YYYY.DD.MM') { return year + TiCodeSeparator + day + TiCodeSeparator + month; } else if (TiDateFormat === 'Weekday, D MMM') { var options = { weekday: 'long', day: 'numeric', month: 'long' }; return capitalizeFirstLetter(now.toLocaleDateString('ru-RU', options)); } else if (TiDateFormat === 'DD.MM') { return day + TiCodeSeparator + month; } else if (TiDateFormat === 'D MMM') { var options = { day: 'numeric', month: 'long' }; return capitalizeFirstLetter(now.toLocaleDateString('ru-RU', options)); } else { return day + TiCodeSeparator + month + TiCodeSeparator + year; } } function capitalizeFirstLetter(string) { return string.charAt(0).toUpperCase() + string.slice(1); } function updateDate() { var TiDateElements = document.querySelectorAll('[href="#ti-data"]'); if (TiDateElements) { Array.from(TiDateElements).forEach(function(element) { element.textContent = TicodeNewDate(); }); } } updateDate(); </script>
КОПИРОВАТЬ КОД
Для нормальной работы модификации необходимо включить библиотеку jQuery.
Как включить: Настройки сайта -> Еще -> Подключить jQuery на страницах сайта
1. Создаем в Zero Block текстовый элемент и назначаем ему ссылку #ti-data Текст не важен, но лучше сделать заглушку формата ММ.ДД.ГГГГ чтобы легче было адаптировать.

2. Указываем настройки в генераторе кода:
Формат даты - указываем в каком формате нужно выводить дату;
Тип разделителя - выбираем символ который будет разделять дату;
Во сколько меняем дату - указываем время когда нужно обновить дату. Например (если указали 16:30, то до 16:30 будет дата текущего дня, а после 16:30 скрипт проставит новую дату);
Язык - выбираем язык для даты (работает только с 4 и 6 форматом даты).
Режим - выбираем один из трех режимов

Режим [Смещение на N количество дней] - в поле "На сколько дней вперед ставить дату" - указываем количество дней до нужной даты (например если сегодня 10 число и указали 1, то дату будет ставить на день вперед. Если указали 5, то при заходе на сайт будет показано 15 число. Важно! Дату всегда отсчитывает от текущего дня. Поэтому если вы указали 5 дней и зашли 10 числа, то дата будет 15. Но если вы зайдете через день, то дату поставит на 16 число, так как отсчитывать будет уже от 11 числа);

Режим [Смена даты по дню недели] - выбираем дни недели на которые будем менять дату. Например, указали вторник, то дату будет проставлять на каждый вторник. Если сегодня вторник 3 число, то дату сменит на 10 число(следующий вторник);

Режим [Свой набор дат] - в поле "Набор своих дат через запятую" указываем свой набор дат в формате 2, 7, 19 и и т. д. Дату будет автоматически менять на ближайшее число из списка.

3. Копируем готовый код и вставляем в HTML блок Т123.

Примечание! Ссылку можно вешать и на часть текстового элемента. Например, если создали текст формата "Вебинар ДД.ММ.ГГГ" и назначили ссылку только для "ДД.ММ.ГГГ", то в результате мы получим "Вебинар 20.08.2023". Скрипт работает и со стандартными блоками.
и получать от 70 000 ₽/мес.
Бонус при регистрации
PDF-книга «‎Как понять
что профессия тебе подходит?»
Как быстро освоить стабильную профессию менеджер маркетплейс
Иду на 15:00 МСК
Иду на 19:00 МСК
БЕСПЛАТНЫЙ ВЕБИНАР
Made on
Tilda