Мне нужно рассчитать разницу во времени, как это сделать в PHP. Мне нужны точные часы, минуты и секунды. у любого органа есть сценарии для этого, пожалуйста, дайте мне 😛
Используйте метод diff () класса PHP DateTime следующим образом:
$lastWeek = new DateTime('last thursday'); $now = new DateTime(); var_dump($now->diff($lastWeek, true));
Это даст вам объект DateInterval : –
object(DateInterval)[48] public 'y' => int 0 public 'm' => int 0 public 'd' => int 2 public 'h' => int 11 public 'i' => int 34 public 's' => int 41 public 'invert' => int 0 public 'days' => int 2
Извлечение значений, которые вы хотите от этого, тривиально.
Проверьте это .. Это должно работать
<?php function timeDiff($firstTime,$lastTime) { // convert to unix timestamps $firstTime=strtotime($firstTime); $lastTime=strtotime($lastTime); // perform subtraction to get the difference (in seconds) between times $timeDiff=$lastTime-$firstTime; // return the difference return $timeDiff; } //Usage : echo timeDiff("2002-04-16 10:00:00","2002-03-16 18:56:32"); ?>
Это должно сработать, просто замените время разности времени на время запуска задачи и текущее время или время окончания задачи. Для непрерывного счетчика время начала будет храниться в базе данных или в течение прошедшего времени для задачи также будет время окончания
function timeDiff($firstTime,$lastTime){ // convert to unix timestamps $firstTime=strtotime($firstTime); $lastTime=strtotime($lastTime); // perform subtraction to get the difference (in seconds) between times $timeDiff=$lastTime-$firstTime; // return the difference return $timeDiff; } //Usage : $difference = timeDiff("2002-03-16 10:00:00",date("Ymd H:i:s")); $years = abs(floor($difference / 31536000)); $days = abs(floor(($difference-($years * 31536000))/86400)); $hours = abs(floor(($difference-($years * 31536000)-($days * 86400))/3600)); $mins = abs(floor(($difference-($years * 31536000)-($days * 86400)-($hours * 3600))/60));#floor($difference / 60); echo "<p>Time Passed: " . $years . " Years, " . $days . " Days, " . $hours . " Hours, " . $mins . " Minutes.</p>";
Функция lateiff на добавленном сайте позволяет вам просто так легко 🙂
Для чего-то подобного используется встроенная функция int time ().
time();
что-то вроде 1274467343
которое представляет собой количество секунд $erlierTime
. time()
снова на последнее время остановки, которое вы хотите, просто позвоните ему $latterTime
Итак, теперь у вас есть что-то вроде $erlierTime
и $latterTime
.
Нет просто $latterTime - $erlierTime
чтобы получить разницу в секундах, а затем сделать ваши подразделения, чтобы получить оцепенелые минуты, пройденное количество часов и т. Д.
Для того, чтобы я или кто-нибудь дал вам полный скрипт, вам нужно рассказать нам, что такое ваша среда, и что вы работаете с mysql, sqlite и т. Д. … также нужно будет знать, как запускается этот таймер.
Лучшим решением будет использование вашего пользовательского кода, в php есть много встроенных функций, которые могут позволить вам сделать это легко. Дата , strtotime и время .
Вы должны преобразовать свое время и время начала в strtotime.
после этого вычесть время начала с момента окончания.
после этого пропустите эту разницу с датой или временем, который вам нужен …
поэтому вы получите точную разницу между двумя датами.