Как рассчитать разницу между двумя датами и временем в PHP?
270
Вычтите самый последний из будущего самого одного и разделите на 60.
Времена делаются в формате Unix, поэтому они представляют собой большое число, показывающее количество секунд с January 1, 1970, 00:00:00 GMT
Ответы выше для старых версий PHP. Используйте класс DateTime для выполнения любых вычислений даты теперь, когда PHP 5.3 является нормой. Например.
$ since_start является объектом DateInterval . Обратите внимание, что свойство days доступно (поскольку мы использовали метод diff класса DateTime для создания объекта DateInterval).
Код выше выведет:
1837 дней всего
5 лет
0 месяцев
10 дней
6 часов
14 минут
2 секунды
Чтобы получить общее количество минут:
Это выведет:
2645654 минут
Который является фактическим количеством минут, прошедших между двумя датами. Класс DateTime будет учитывать переход на летнее время (в зависимости от часового пояса), а "старый путь" - нет. Прочитайте руководство о дате и времени http://www.php.net/manual/en/book.datetime.php
источник
inSeconds()
или чего-то подобного, теперь это повторение кода везде, где мне нужно вычислять разницу в секундах.$dateFrom = new DateTime('2007-09-01 04:10:58'); $dateTo = new DateTime('2012-09-11 10:25:00'); echo ($dateTo->getTimestamp()-$dateFrom->getTimestamp())/60 ;
strtotime
ответ выше? Это похоже на случай ООП, когда Процедура по крайней мере в качестве действительного (и значительно более краткого) решения.Вот ответ:
источник
/ 60,2
значит: разделить на шестьдесят, округлить до ближайших двух десятичных знаков.strtotime
может быть устаревшим, но это не является ненадежным, если вы используете его правильно. Разумеется, вам необходимо работать с согласованными форматами даты, чтобы иметь возможность правильно читать (или анализировать) даты. СмотритеISO 8601
и не обвиняйте инструменты: =)источник
sleep
для расчета разницы дат?Он работал на моих программах, я использую
date_diff
, вы можете проверитьdate_diff
руководство здесь .Вы получаете результаты, что вы хотите.
источник
другой способ с часовым поясом.
источник
$days = $interval->format('%d');
и разница($days * 1440 + $hours * 60 + $minutes)
. В течение многих месяцев, лет => та же логикаЯ написал эту функцию для одного моего сайта блога (разница между прошедшей датой и датой сервера). Это даст вам вывод, как это
«49 секунд назад», «20 минут назад», «21 час назад» и т. Д.
Я использовал функцию, которая получала бы мне разницу между прошедшей датой и датой сервера.
Сохраните его как файл, допустим, «date.php». Вызовите функцию с другой страницы, как это
Конечно, вы можете изменить функцию, чтобы передать два значения.
источник
Я думаю, что это поможет вам
источник
$minutes = floor(($seconds/60)%60);
источник
Более универсальная версия, которая возвращает результат в днях, часах, минутах или секундах, включая дроби / десятичные дроби:
источник
Вот как я отобразил «xx times ago» в php> 5.2 .. здесь больше информации об объекте DateTime
источник
Вывод:
источник
Вычтите время и разделите на 60.
Вот пример, который вычисляет истекшее время из
2019/02/01 10:23:45
в минутах:источник
Мое решение найти разницу между двумя датами здесь. С помощью этой функции вы можете найти различия, такие как секунды, минуты, часы, дни, годы и месяцы.
Вы можете развить эту функцию. Я проверил и работает для меня. Выходные данные объекта DateInterval находятся здесь:
Использование функции:
$ date = прошедшая дата, $ diff = тип, например: «минуты», «дни», «секунды»
Удачи.
источник
Это поможет....
источник
Я нашел так много решений, но так и не получил правильного решения. Но я создал код, чтобы найти минуты, пожалуйста, проверьте его.
Это дает вывод в часах и минутах, например, 01 час 02 минут, как 01:02
источник