как посчитать разницу между двумя разами в php и показать - PullRequest
2 голосов
/ 01 февраля 2020

Мне нужно показать разницу между двумя значениями в PHP Я использую функцию strtotime() для преобразования моего времени в целое, но моя проблема в том, что результат не соответствует ожидаемому

<?php
$hour1 = '12:00:00';
$hour2 = '9:00:00';
$avg = strtotime($hour1) - strtotime($hour2);
$result = date('h:i:s', $avg); // result = 06:30:00 what I expected is 3:00:00

Но разница в 3:00:00 как это рассчитать?

Ответы [ 2 ]

2 голосов
/ 01 февраля 2020

Вы можете создать DateTime экземпляров и использовать функцию diff, чтобы получить разницу между 2 разами. Затем вы можете отформатировать их в часах, минутах и ​​секундах.

<?php

$hour1 = '12:00:00';
$hour2 = '09:00:00';

$o1 = new DateTime($hour1);
$o2 = new DateTime($hour2);

$diff = $o1->diff($o2,true); // to make the difference to be always positive.

echo $diff->format('%H:%I:%S');

Демо: https://3v4l.org/X41pv

0 голосов
/ 01 февраля 2020

Вы можете сделать это:

$hour1 = '12:00:00';
$hour2 =  date('h', strtotime('9:00:00')); 
$avg= date('h:i:s', strtotime($hour1. ' - '.$hour2.' hours') );
echo $avg; //3:00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...