как рассчитать разницу во времени в PHP

Мне нужно рассчитать разницу во времени, как это сделать в 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 и время .

  1. Сначала конвертируйте любые ваши даты из формата «Ymd H: i: s» в формат времени Linux, используя функцию strtotime .
  2. Сделайте свои расчеты и используйте время, чтобы получить актуальную отметку времени, если это применимо.
  3. Преобразуйте вычисленную метку времени в даты с использованием функции даты .

Вы должны преобразовать свое время и время начала в strtotime.

после этого вычесть время начала с момента окончания.

после этого пропустите эту разницу с датой или временем, который вам нужен …

поэтому вы получите точную разницу между двумя датами.