Tilda
August 25, 2023

Автоматическая смена даты на tilda

В нужном вместе впишем шорткод {date}

Добавим скрипт в блок T123

<script>
document.addEventListener('DOMContentLoaded', function () {
    // Функция для получения следующей даты
    function getNextDate() {
        const today = new Date();
        const tomorrow = new Date(today);
        tomorrow.setDate(today.getDate() + 1);
        return tomorrow;
    }

    // Функция для форматирования даты в "15 Ноября" с возможностью изменения названия месяца
    function formatDate(date, monthNames) {
        const day = date.getDate();
        const month = monthNames[date.getMonth()];
        return `${day} ${month}`;
    }

    // Функция для замены текста с шорткодом {date}
    function replaceDate() {
        const targetTime = new Date();
        targetTime.setHours(13, 30, 0); // Устанавливаем желаемое время (13:30)

        // Если текущее время больше или равно заданному времени, переходим к следующему дню
        if (new Date() >= targetTime) {
            const nextDate = getNextDate();
            const monthNames = ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря'];
            const formattedDate = formatDate(nextDate, monthNames);

            // Находим все элементы с текстом {date} и заменяем их
            document.body.innerHTML = document.body.innerHTML.replace(/\{date\}/g, formattedDate);
        }
    }

    // Вызываем функцию при загрузке страницы
    replaceDate();
});
</script>


Данный скрипт будет менять дату в 13:30 по МСК

Не забудьте поменять в скрипте время смены даты

Смена даты по расписанию

<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script>
$(document).ready(function() {
    // Создаем список дат формата Y-M-D
    let dateArray = [
        ['2023-12-05', '5 декабря 2023'],
        ['2023-12-06', '6 декабря 2023'],
        ['2023-12-27', '27 декабря 2023'],
        ['2024-01-05', '5 января 2024']
    ];

    let currentDate = new Date();
    let currentHour = currentDate.getHours();

    // Если текущее время больше или равно 13:30, то сменяем на следующую дату
    if (currentHour >= 13 && currentDate.getMinutes() >= 30) {
        let nextDate = getNextDate(currentDate, dateArray);
        replaceDatePlaceholder(nextDate);
    } else {
        // Если текущее время меньше 13:30, о��тавляем текущую дату
        replaceDatePlaceholder(dateArray[0][1]);
    }

    function getNextDate(currentDate, dateArray) {
        for (let i = 0; i < dateArray.length; i++) {
            let checkDate = new Date(dateArray[i][0]);
            if (checkDate > currentDate) {
                return dateArray[i][1];
            }
        }
        // Если не найдено, вернуть последнюю дату
        return dateArray[dateArray.length - 1][1];
    }

    function replaceDatePlaceholder(newDate) {
        // Заменяем шорткод в тексте
        $('body').html(function (index, oldHtml) {
            return oldHtml.replace(/{date}/g, newDate);
        });
    }
});
</script>