在PHP中减去时间以获得秒的差异

时间:2012-12-05 22:02:35

标签: php mysql time subtraction

我想用秒来计算时间上的差异。我一直得到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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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更改为其他时间指标)