<!--TS24 - Модификация для Тильды. Дата, время, график работы https://mod.tistols.com/date -->
<script>
document.addEventListener("DOMContentLoaded", function () {
const GMT_OFFSET = 3; // Смещение времени в часах (Москва = 3)
const schedule = {
1: { start: "07:00", end: "16:00", name: "MONDAY" }, // Указываем рабочее время для понедельника
2: { start: "07:00", end: "16:00", name: "TUESDAY" }, // Указываем рабочее время для вторника
3: { start: "07:00", end: "16:00", name: "WEDNESDAY" }, // Указываем рабочее время для среды
4: { start: "07:00", end: "16:00", name: "THURSDAY" }, // Указываем рабочее время для четверга
5: { start: "07:00", end: "16:00", name: "FRIDAY" }, // Указываем рабочее время для пятницы
6: { start: "07:00", end: "12:00", name: "SATURDAY" }, // Указываем рабочее время для субботы
7: { start: "07:00", end: "12:00", name: "SUNDAY" } // Указываем рабочее время для воскресенья
};
function parseTime(timeStr) {
let [hours, minutes] = timeStr.split(":").map(Number);
return hours * 60 + minutes;
}
function getNextWorkingDay(today) {
for (let i = 1; i <= 7; i++) {
let nextDay = (today + i) % 7;
if (schedule[nextDay]) return nextDay;
}
return null;
}
function updateWorkStatus() {
let nowUTC = new Date();
let nowLocal = new Date(nowUTC.getTime() + GMT_OFFSET * 60 * 60 * 1000);
let day = nowLocal.getUTCDay();
let minutesNow = nowLocal.getUTCHours() * 60 + nowLocal.getUTCMinutes();
let worktimeico = document.querySelector(".worktimeico .tn-atom");
let worktimeText = document.querySelector(".worktime .tn-atom");
console.log(`Текущий день (GMT): ${day}`);
console.log(`Текущее время (GMT): ${nowLocal.getUTCHours()}:${nowLocal.getUTCMinutes()}`);
if (schedule[day] && minutesNow >= parseTime(schedule[day].start) && minutesNow <= parseTime(schedule[day].end)) {
worktimeText.textContent = "AVAILABLE NOW"; // Здесь пишем текст, который выводится в рабочее время
if (worktimeico) worktimeico.style.backgroundColor = "";
} else {
let nextWorkDay = getNextWorkingDay(day);
if (nextWorkDay !== null) {
let startHour = schedule[nextWorkDay].start;
worktimeText.textContent = `WE ARE OPENING ${schedule[nextWorkDay].name} ${startHour} - ${schedule[nextWorkDay].end}`;
// Вместо WE ARE OPENING пишем текст, который выводится в нерабочее время
}
if (worktimeico) worktimeico.style.setProperty("background-color", "#FF0A0A", "important");
}
}
updateWorkStatus();
setInterval(updateWorkStatus, 60000);
});
</script>
<script>
// Функция для обновления времени, дня недели и даты
function updateDateTime() {
var now = new Date();
var timeElement = document.querySelector('.time .tn-atom');
var dayElement = document.querySelector('.day .tn-atom');
var dateElement = document.querySelector('.date .tn-atom');
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
var timeString = ('0' + hours).slice(-2) + ':' + ('0' + minutes).slice(-2);
// Получаем текущий день недели
var daysOfWeek = ['SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY'];
var dayOfWeek = daysOfWeek[now.getDay()];
// Получаем текущий месяц
var months = ['JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE', 'JULY', 'AUGUST', 'SEPTEMBER', 'OKTOBER', 'NOVEMBER', 'DECEMBER'];
var month = months[now.getMonth()];
// Получаем число месяца
var date = now.getDate();
// Формируем строку для вывода даты
var dateString = date + ' ' + month;
// Обновляем содержимое элементов
timeElement.textContent = timeString;
dayElement.textContent = dayOfWeek;
dateElement.textContent = dateString;
}
// Вызываем функцию updateDateTime при загрузке страницы и каждую секунду
window.onload = function () {
updateDateTime();
setInterval(updateDateTime, 1000);
};
</script>