-1

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

例如:

2012 年 6 月 20 日下午 2:18 2012 年 6 月 21 日下午 3:00 * 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 回答