Показать сообщение отдельно
  #3 (permalink)  
Старый 22.05.2019, 23:41
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,708

Сообщение от Igor_Gerasimov
1. Если время с с 0:00 до 16:00 по Мск - выводить текущий день
2. Если время с 16:00 до 24:00 по Мск - выводить дату следующего дня
<span id="formatted-date"></span>
<script>

const M = 60 * 1000;
const H = 60 * M;
const D = 24 * H;
const Z = 3 * H; // Moscow Standard Time (GMT+300)
const E = 16 * H - Z; // 16 часов в Москве
const time = Math.ceil((Date.now() - E) / D) * D; // формула, вычисляющая время согласно п. 1 и п. 2 из поста №1

const date = new Date(time + new Date().getTimezoneOffset() * M); // переводим полученное время в формат «только показание часов»
const formattedDate = new Intl.DateTimeFormat("ru", {
	day: "numeric",
	month: "long",
	year: "numeric"
}).format(date); // полученное время переводим на русский язык

document.getElementById("formatted-date").textContent = formattedDate;  // и выводим в элемент на странице

</script>

Последний раз редактировалось Malleys, 22.05.2019 в 23:49.
Ответить с цитированием