Как вычесть из одного времени другое в php?

Пользователь

от gage , в категории: PHP , 3 года назад

Как вычесть из одного времени другое в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 3 года назад

@gage Используйте ->diff() метод у DateTime() объекта чтобы вычесть из одного времени другое в PHP, ниже код как пример:


1
2
3
4
5
6
7
8
<?php

$now = new DateTime();
$yesterday = new DateTime('-24 hours');
$diff = $now->diff($yesterday);

// Вывод: 0 дней, 23 часов, 59 минут, 59 секунд
printf('%d дней, %d часов, %d минут, %d секунд', $diff->d, $diff->h, $diff->i, $diff->s);


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от willis.streich , 2 года назад

@gage 

Вы можете вычислить разницу между двумя временными метками в PHP с помощью функции strtotime() и оператора вычитания -.


Вот пример кода, который вычитает из одного времени другое и выводит результат в формате часов, минут и секунд:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$time1 = strtotime('12:30:00'); // первое время
$time2 = strtotime('10:15:30'); // второе время
$diff = $time1 - $time2; // разница в секундах

// преобразование разницы в часы, минуты и секунды
$hours = floor($diff / 3600);
$minutes = floor(($diff - $hours * 3600) / 60);
$seconds = $diff - $hours * 3600 - $minutes * 60;

echo "$hours часов $minutes минут $seconds секунд";


В результате выполнения этого кода будет выведено 2 часа 14 минут 30 секунд, что является разницей между 12:30:00 и 10:15:30.


Обратите внимание, что функция strtotime() преобразует строку с временем в число, представляющее количество секунд с начала эпохи Unix (1 января 1970 года 00:00:00 UTC). В результате оператора вычитания - вы получите разницу между двумя временными метками в секундах.