0

我想以秒为单位计算时间差。我一直得到 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";
    }
}

我只是简单地尝试了上面我想要的示例并且得到了一个负数。这就是我需要帮助的原因。

4

2 回答 2

1

谢谢大家帮我解决这个问题。我的问题是它以 24 小时格式而不是标准收集时间。一旦我解决了这个问题,一切都会完美无缺。

于 2012-12-06T18:20:00.027 回答
0

这很容易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为另一个时间指标)

于 2012-12-05T22:44:13.760 回答