Вычитая время в PHP, вы получите разницу в секундах
Я хочу выяснить разницу во времени по секундам. Я продолжаю получать 0 в качестве результата и хочу знать, может ли кто-нибудь помочь мне. Время будет извлечено из базы данных.
Вот пример того, что я хочу сделать.
$TimeStart = "04:30:45 am";
$TimeEnd = "04:31:46 am";
$Difference = $TimeEnd - $TimeStart . "seconds";
Я знаю, что это не очень иллюстрированный пример, и я знаю, что, вероятно, не все так просто.
Вот код, который сейчас находится на моем сайте:
$TimeStart = strtotime($VisitsRow['TimeStart']);
$TimeEnd = strtotime($VisitsRow['TimeEnd']);
$TimeDifference = ($TimeEnd - $TimeStart);
if ($VisitsRow['TimeEnd'] == "") {
$Timeto = "Incomplete";
} else {
if ($TimeDifference <= 60) {
$Timeto = "< a minute";
} else if ($TimeDifference <= 0) {
$Timeto = "< a second";
} else {
$Timeto = round($TimeDifference, 2)." seconds";
}
if ($TimeDifference >= 60) {
$MinutesDiff = $TimeDifference / 60;
$Timeto = round($MinutesDiff, 2)." minutes";
}
}
Я просто попробовал пример того, что я хочу выше, и получаю отрицательное число. Вот почему мне нужна помощь.
2 ответа
Спасибо всем за помощь в решении этой проблемы. Моя проблема заключалась в том, что он собирал время в 24-часовом формате, а не в стандартном формате. Как только я решил это, все работает отлично.
Это довольно легко с strtotime
:
$TimeStart = strtotime("04:30:45");
$TimeEnd = strtotime("04:31:46");
$Difference = ($TimeEnd - $TimeStart) . " seconds";
Но если вам нужно, чтобы он был более динамичным, с помощью SQL вы можете вычесть два поля даты следующим образом:
SELECT TIMESTAMPDIFF(MINUTE,TimeEnd,TimeStart) AS TimeDifference FROM myTable
(Обратите внимание, вы можете изменить MINUTE
в другое время метрика если хочешь)