SpiderPigAndCat
@SpiderPigAndCat
занимаюсь салообразованием

Обратный отсчет до определенной даты?

из пхп(шаблонизатор smarty) приходит такая дата 2020-09-06 07:02:00 как сделать обратный отсчет до нее?
  • Вопрос задан
  • 546 просмотров
Решения вопроса 1
gscraft
@gscraft
Программист, философ
Ну, очень удобно пользоваться библиотеками вроде moment, luxon, в плане сравнения, API итерации дней и т.д., но можно воспользоваться и стандартным Date, в стандартной библиотеке JS класс даты-времени классный : ) В качестве примера:
let source = new Date('2020-09-06 07:02:00');
let current = new Date();
while (source.getTime() > current.getTime())
   current.setDate(current.getDate() + 1); // просто добавляем дни

— считать можно в обе стороны и в любой момент получить любые части даты.

Если Вам нужно вывести что-то в духе "осталось столько-то дней":
let source = new Date('2020-09-06 07:02:00');
let current = new Date();
let diff = new Date(source.getTime() - current.getTime());
let empty = new Date(0);
console.log('Months remains:', diff.getMonth() - empty.getMonth());
let days = diff.getDate() - empty.getDate();
let hours = diff.getHours() - empty.getHours();
console.log('Days remains:', hours < 0 ? days - 1: days); // это справедливо и для месяцев, дней
console.log('Hours remains:', hours < 0 ? 24 + hours : hours);

— это решение придумал на ходу, возможно предложат эффективнее.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SpiderPigAndCat
@SpiderPigAndCat Автор вопроса
занимаюсь салообразованием
нашел что надо https://codepen.io/ParsonsProjects/pen/mVbZgY?edit...
тут на 4 строке просто заменить дату на свою и последовательность проверить дней годов и месяцев
спасибо за подсказку о moment js
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект