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 を使用して、次のように 2 つの日付フィールドを減算できます。

SELECT TIMESTAMPDIFF(MINUTE,TimeEnd,TimeStart) AS TimeDifference FROM myTable

MINUTE(必要に応じて別の時間メトリックに変更できることに注意してください)

于 2012-12-05T22:44:13.760 に答える