Задать вопрос
mannaro
@mannaro
Умею профессионально гуглить

Разница в датах?

Здравствуйте. Недавно я впал в ступор и не смог получить разницу во времени в виде ГОДА — МЕСЯЦА — ДНИ — ЧАСЫ — МИНУТЫ — СЕКУНДЫ.


На входе у нас есть дата (date). Нам нужно сравнить с текущим временем и вывести разницу. Извиняюсь за непонятное объяснение, голова уже не варит.
  • Вопрос задан
  • 15403 просмотра
Подписаться 5 Оценить Комментировать
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Moment.js — отличная библиотека для работы со временем. Помимо всего прочего умеет делать всевозможные сравнения дат между собой. Попробуйте, возможно это то что вам нужно. Кроме того сможет вывести разницу в любом заданном вами формате. В том числе и на любом языке.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@noonesshadow
обе даты (дата на входе и текущая дата) должны быть заданы в одном и том же часовом поясе
между двумя датами могли переводить время, тогда, возможно, нужно прибавить или отнять 1 час
года бывают високосные и нет

если примерное значение устроит, то разница двух объектов Date — число миллисекунд между ними
делением
на 1000 — секунды
на 60000 — минуты
на 3600000 — часы
на 86400000 — сутки
на 31536000000 — годы
Ответ написан
@Amon_Sha
Именно так, «ГОДА — ЧАСЫ — МИНУТЫ — СЕКУНДЫ»? Дни, месяцы не нужны?

Я бы делал так:

1) получаем разницу дат в секундах
2) делим на 60: результат — разница в минутах, остаток — секунды
3) делим на 60: результат — разница в часах, остаток — минуты
4) делим на 24: результат — разница в днях, остаток — часы
5)… тут нужно правильно посчитать годы (с учётом високосных и кратных 100 и 400), получим разницу в годах, в остатке — дни
6) RPOFIT

Если ещё и месяцы нужны, то будет заметно сложнее.
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
Если я правильно понял:
javascript.ru/Date

Есть список методов, берете setYear/setDate/etc и потом получаете Unix timestamp (Date.getTime()) нужного времени. Создаете ещё один объект, он по умолчанию будет с текущим временем, берете разницу их Unix timestamp-ов, получаете разницу между датами в мс. Високосными годами и прочим займется браузер.
Ответ написан
Комментировать
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Это, правда, плагин для jQuery, но посмотрите: github.com/rmm5t/jquery-timeago
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽