计算如果使用PHP小于或等于24小时

时间:2012-06-21 06:21:28

标签: php datetime

我想计算两次设定时间之间的时间(Cron作业运行1小时,每小时)。

E.G:

2012年6月20日下午2:18 2012年6月21日下午3:00 * Cron Job运行超过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 />";
}

1 个答案:

答案 0 :(得分:0)

您是否考虑过实际执行查询以执行您需要的操作而不是在PHP中提取所有数据并进行比较?你可以做到

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

通过阅读您的代码,我假设您需要将opentime字段设为时间戳,其中包含日期和时间。但无论如何,在大多数情况下,这是明智的选择。