Расчет разницы во времени (PHP) - PullRequest
2 голосов
/ 19 июля 2011

Вот моя функция

<?php    
//Find time difference
    function timeDifference($timeEnd, $timeStart){
      $tResult = strtotime($timeEnd) - strtotime($timeStart);
      return date("G:i", $tResult-3600);
    }
?>

И пример

<?php
   echo timeDifference(12:00:00,08:30:00);
?>

Результаты на моем локальном хосте были хорошими, но в Интернете на моем сервере показывается 21:30, а должно быть 3:30. Что может сделать это?

UPDATE

Вот мое решение для php 5.2

<?php
//Find time difference
function timeDifference($timeEnd, $timeStart){
  $tResult = round(abs(strtotime($timeEnd) - strtotime($timeStart)));
  return gmdate("G:i", $tResult);
}
?>

Спасибо за помощь, ребята

Ответы [ 2 ]

4 голосов
/ 19 июля 2011

Если вы используете PHP 5.3, он поставляется со встроенной функцией date_diff().

Это может быть проще, чем пытаться отлаживать свою собственную функцию.

Кстати, код, который вы дали:

echo timeDifference(12:00:00,08:30:00);

никогда не сработает, потому что у вас нет кавычек среди временных строк. Я предполагаю, что это опечатка в вопросе, так как вы утверждаете, что функция возвращает результаты (даже если они неверны)

0 голосов
/ 19 июля 2011

Это может быть проблема с часовым поясом.Попробуйте установить часовой пояс с помощью этой функции в верхней части страницы PHP:

http://www.php.net/manual/en/function.date-default-timezone-set.php

http://www.php.net/manual/en/timezones.php

...