PHP вычитание времени не работает - PullRequest
2 голосов
/ 07 июня 2011

Я пытаюсь отобразить время начала x, время окончания x и время, необходимое для завершения x. У меня правильно отображаются начало и конец, но следующее вычитание дает мне безумный ответ.

    // to unix timestamps for subtraction
    $startTime = strtotime($row['bp_rec_start']);
    $endTime = strtotime($row['bp_rec_end']);
    $timeTaken = $endTime - $startTime;

    //back to date formats
    $startTime = date('H:i',$startTime);
    $endTime = date('H:i',$endTime);
    $timeTaken = date('H:i',$timeTaken);

например. (01:24 - 01:23 = 07:01)

Спасибо

1 Ответ

4 голосов
/ 07 июня 2011

Отметки времени равны секундам с 1970 года , каждая отметка времени представляет собой абсолютный момент времени.Так что $endTime - $startTime производит некоторый момент времени, например 1975-04-12 07:01:52.Печать часовой и минутной части этого, конечно, напечатает 07:01.Тем не менее, сама отметка времени представляет собой разницу в секундах, поэтому вы можете сделать следующее:

echo "Difference: $timeTaken seconds";

Разумеется, вам следует обратиться к DateInterval (посмотрите на третий пример).

...