Найдите разницу между двумя датами и проверьте, меньше ли заданное значение - PullRequest
0 голосов
/ 10 ноября 2019

моя проблема в том, что я хочу получить две метки времени и сравнить, если вторая (позже взятая) находится на расстоянии менее 59 минут от первой. Следуя этой теме Сравните две даты с JavaScript

объект даты может выполнить эту работу.

, но первое, что меня не устраивает, это то, что это отнимает время у моегосистема. возможно ли получить время с какого-нибудь публичного сервера или чего-то еще? потому что всегда есть вероятность того, что системные часы будут манипулироваться в пределах отметок времени, так что это будет слишком ненадежным. какой-то внешний источник был бы отличным.

тогда я не слишком уверен, как получить разницу между 2 раза (используя 2 объекта даты). может всплывать множество проблем: время около 3:59 и 6:12, поэтому сравнение минут даст неверное представление. поэтому мы считаем часы тоже. но там проблема с модулем 24. день 3 23:59 и день 4 0:33 также не будут рассматриваться как правильные.

, включая дни тоже. тогда по модулю 30 штук, даже если это сверху меняет месяц на месяц. поэтому месяц и год также будут включены.

, поэтому нам понадобится целая дата, все от текущего года до секунды (потому что секунда тоже будет хороша для точности), а для сравнения их потребуется множество предложений ifдля года, месяца и т. д.

есть ли у объектов даты какая-то заранее определенная функция сравнения дат, которая на самом деле помнит все эти вещи (даже не упомянул високосные годы, не так ли?)

времябыло бы очень важной причиной именно на отметке 59 минут (+ -макс. 5 секунд не имеет значения, но приближаться к 60 запрещено), необходимо использовать определенную функцию, которая в обязательном порядке закрывает веб-сайт. Сценарий открывает веб-сайт на отметке 0 минут, выполняет некоторые операции, промывает и повторяет стиль и закрывает страницу на отметке 59 минут.

проверка времени, как каждые несколько секунд, будет разумной.

Любые хорошие идеи, какреализовать такое сравнение времени, которое не потребляет слишком много энергии компьютера, но эффективно, как при запуске нового месяца, и вещи не портят его?

1 Ответ

0 голосов
/ 10 ноября 2019

Вы можете сравнить два времени Дата, но при создании времени даты есть параметр DateTime(value), который вы можете использовать.

Вы можете использовать этот API , чтобы получитьтекущее время UTC, которое возвращает пример массива JSON, например:

{ 
   "$id":"1",
   "currentDateTime":"2019-11-09T21:12Z",
   "utcOffset":"00:00:00",
   "isDayLightSavingsTime":false,
   "dayOfTheWeek":"Saturday",
   "timeZoneName":"UTC",
   "currentFileTime":132178075626292927,
   "ordinalDate":"2019-313",
   "serviceResponse":null
}

Таким образом, вы можете использовать возврат currentFileTime или currentDateTime из этого API для создания объекта даты.

Пример:

const date1 = new Date('2019-11-09T21:12Z') // time when I started writing this answer
const date2 = new Date('2019-11-09T21:16Z') // time when I finished writing this answer

const diff = new Date(date2-date1)
console.log(diff.toTimeString()) // time it took me to write this

Имейте в виду, что из-за скорости сети API времени будет на немного бит отключен (на несколько миллисекунд)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...