-1

設定された 2 つの時間の間の時間を計算したい (Cron ジョブは 1 時間ごとに実行される)。

例えば:

2012 年 6 月 20 日の午後 2 時 18 分 2012 年 6 月 21 日の午後 3 時 * Cron ジョブの実行、24 時間以上

後で開発するタスクを実行するには、PHPでこれをどのように計算しますか。

私が試みたスクリプト:

define("SECONDS_PER_HOUR", 60*60);
date_default_timezone_set('UTC');

$result = mysql_query("SELECT * FROM tickets") or die(mysql_error());

while($row = mysql_fetch_array($result)) {
    // Calculate the start time
    $str = $row['openTime'] . " " . $row['openDate'];

    $startdatetime = strtotime($str);

    $enddatetime = time();

    // calculate the difference in seconds.

    $difference =  $enddatetime - $startdatetime;

    $hoursDiff = $difference / SECONDS_PER_HOUR;

    $minutesDiffRemainder = $difference % SECONDS_PER_HOUR;

    echo $row['ticketID'] . ": " . $hoursDiff . "h " . $minutesDiffRemainder . "m<br />";
}
4

1 に答える 1

0

必要なことを実行し、すべてのデータを取得せず、PHP で比較を行うクエリを実際に実行することを検討しましたか? あなたができる

SELECT * from TICKETS WHERE DATE_ADD(open time, INTERVAL 24 HOUR) > CURTIME();

あなたのコードを読んで、opentimeフィールドを日付と時刻の両方を含むタイムスタンプにする必要があると思います。しかし、とにかく、ほとんどの場合、それは賢明な選択です。

于 2012-06-21T07:58:35.353 に答える