我想计算两次设定时间之间的时间(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 />";
}
答案 0 :(得分:0)
您是否考虑过实际执行查询以执行您需要的操作而不是在PHP中提取所有数据并进行比较?你可以做到
SELECT * from TICKETS WHERE DATE_ADD(open time, INTERVAL 24 HOUR) > CURTIME();
通过阅读您的代码,我假设您需要将opentime
字段设为时间戳,其中包含日期和时间。但无论如何,在大多数情况下,这是明智的选择。