/
merulaalba
/
WeatherApp
Обзор
Документация
Войти
/
merulaalba
/
WeatherApp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
scripts/time.js
89 строк
2 KB
merulaalba
Full adaptive done
30 май 2026, 17:26
30 май 2026, 17:26
349edd2
Код
Авторство
О чём код?
import { MILLI_SECONDS_IN_MINUTE } from "./constants.js"; // Вычисляет и устанавливает атрибут datetime для тега time const parseDateToISO = (dateString, selector) => { const Months = { 'января': '01', 'февраля': '02', 'марта': '03', 'апреля': '04', 'мая': '05', 'июня': '06', 'июля': '07', 'августа': '08', 'сентября': '09', 'октября': '10', 'ноября': '11', 'декабря': '12' }; const today = new Date; const date = dateString.trim().split(' '); const year = today.getFullYear(); const day = date[1]; const monthName = date[2]; const month = Months[monthName]; const dateTime = `${year}-${month}-${day}`; const dateElement = document.querySelector(`[data-${selector}]`); dateElement.dateTime = dateTime; }; //Проверяет валидность времени, которое приходит в объекте const validateTimeFormat = (time) => { let [hours, minutes] = time.split(':').map(Number); if(hours < 0 || hours > 24) { return "Не известно"; } else { if(hours < 10) { hours = `0${hours}`; } } if(minutes < 0 || minutes > 59) { return "Не известно"; } else { if(minutes < 10) { minutes = `0${minutes}`; } } return `${hours}:${minutes}`; } // Вычисляет остаток времени между двумя заданными датами. const getTime = (currentTime, presentTime) => { const time1 = validateTimeFormat(currentTime); const time2 = validateTimeFormat(presentTime); const timeNow = new Date(`2026-01-06T${time1}:00`); const rightTime = new Date(`2026-01-06T${time2}:00`); let difference = 0; if(timeNow > rightTime) { difference = timeNow - rightTime; } else { difference = rightTime - timeNow; } let allMinutes = Math.floor(difference / MILLI_SECONDS_IN_MINUTE); let hour = Math.floor(allMinutes / 60); let minute = allMinutes % 60; if(hour < 10) { hour = `0${hour}`; } if(minute < 10) { minute = `0${minute}`; } return `${hour}:${minute}`; } export { parseDateToISO, getTime };