Возможный дубликат:
Как получить разницу во времени в минутах в PHP
Я работаю над таблицей посещаемости для расчета поздних и очень поздних сотрудников. Я сохраняю время входа в таблицу (Тип: время). Я могу получить время из базы данных, и я хотел бы показать разницу во времени в отдельном столбце.
т.е. если сотрудник вошел в систему или до 09:00:59
, тогда его правильное время и 09:00:59
времени должны быть указаны как null. Если он входит в систему после времени, то есть 09:01:00
или позже, разница во времени должна быть 00:00:01
. Как мудрый мне нужно рассчитать разницу во времени.
Одно время является постоянным, т.е. 09:00:59
а другое – из таблицы базы данных. Необходимо получить разницу между обоими. Я работаю в PHP. Надеюсь, мой вопрос ясен.
Заранее спасибо.
Вы можете использовать strtotime () для вычисления времени. Вот пример:
$checkTime = strtotime('09:00:59'); echo 'Check Time : '.date('H:i:s', $checkTime); echo '<hr>'; $loginTime = strtotime('09:01:00'); $diff = $checkTime - $loginTime; echo 'Login Time : '.date('H:i:s', $loginTime).'<br>'; echo ($diff < 0)? 'Late!' : 'Right time!'; echo '<br>'; echo 'Time diff in sec: '.abs($diff); echo '<hr>'; $loginTime = strtotime('09:00:59'); $diff = $checkTime - $loginTime; echo 'Login Time : '.date('H:i:s', $loginTime).'<br>'; echo ($diff < 0)? 'Late!' : 'Right time!'; echo '<hr>'; $loginTime = strtotime('09:00:00'); $diff = $checkTime - $loginTime; echo 'Login Time : '.date('H:i:s', $loginTime).'<br>'; echo ($diff < 0)? 'Late!' : 'Right time!';
Проверьте уже заданный вопрос – как получить разницу во времени в минутах :
Вычтите последний из самых лучших из будущего – самый первый и разделите на 60.
Времена сделаны в унифицированном формате, поэтому они представляют собой просто большое число, показывающее количество секунд с 1 января 1970 года 00:00:00 GMT
Вы также можете использовать класс DateTime :
$time1 = new DateTime('09:00:59'); $time2 = new DateTime('09:01:00'); $interval = $time1->diff($time2); echo $interval->format('%s second(s)');
Результат:
1 second(s)
<?php $start = strtotime("12:00"); $end = // Run query to get datetime value from db $elapsed = $end - $start; echo date("H:i", $elapsed); ?>