Как вычитать определенное время с системным временем в php?
Как я могу сделать переменную $ всего меня из результата в формате времени? Теперь с этим кодом единственное, что мне удается, это вычесть часы, но не минуты, и он показывает мне только число. пример: 07:45 - 03:35 = 4. я хотел бы, чтобы вместо того, чтобы дать мне 4 мне что-то вроде: 03:10.
$fin = '07:45'; $hora = date("H:i"); $total = $fin - $hora; echo "EL evento empezara en $total";
2 answers
Простой функции должно быть достаточно для вычитания часов:
Выполните следующие действия:
$hora_actual=date("H:i");
$fin = '07:45';
$resultado=date("H:i:s",strtotime("00:00") +strtotime($fin) - strtotime($hora_actual) );
echo $resultado;
Это должно работать, но имейте в виду, что date("H:i")
выводит текущее время в соответствии с часовым поясом вашего сервера, поэтому эта настройка остается для вас.
Также помните, что он будет работать только в вычитании horas
и не будет принимать во внимание даты.
Вы можете создать два объекта DateTime
, один с фиксированным временем 07:45
и один с текущим временем.
Затем вы используете diff
для вычисления разницы между двумя объектами, выполняя вычисления по различным группам различий в объекте, который бросит вас diff
.
Например:
$dateStart = new DateTime("07:45:00");
$dateEnd = new DateTime();
$dateInterval = $dateEnd->diff($dateStart);
$strResult = sprintf(
'%d:%02d:%02d', //formato de salida
($dateInterval->d * 24) + $dateInterval->h, //horas
$dateInterval->i, //minutos
$dateInterval->s //segundos
);
echo "El evento empezará en $strResult";
Использование diff
- лучший способ вычислить различия между датами, поскольку он дает вам полный объект со всеми видами различий. Чтобы вы поняли, это вся информация, которая будет в объекте $dateInterval
кода выше. Это позволит вам узнать, если это необходимо, не только сколько часов/минут / секунд между двумя датами, но и сколько недель, месяцев, лет ... и больше информации.
object(DateInterval)#3 (15) {
["y"]=>
int(0)
["m"]=>
int(0)
["d"]=>
int(0)
["h"]=>
int(3)
["i"]=>
int(5)
["s"]=>
int(50)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(0)
["days"]=>
int(0)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)
}