如何计算事件发生的总时间(以分钟为单位)在一小时内发生,并在Mysql和php中每小时发生一次

时间:2015-03-09 04:26:23

标签: php mysql

我因一个问题被绞死可能是由于我缺乏专业知识。我有以下mysql表:

Fdname - fcode - 时间状态 - 状态

大学104 2015-03-05 01:37:00 OFF

大学104 2015-03-05 01:42:00 ON

大学104 2015-03-05 01:55:00 OFF

大学104 2015-03-05 02:00:00 ON

大学104 2015-03-05 07:20:00 OFF

大学104 2015-03-05 07:22:00 ON

大学104 2015-03-05 10:17:00 OFF

大学104 2015-03-05 11:16:00 ON

University 104 2015-03-05 12:17:00 OFF

University 104 2015-03-05 13:17:00 ON

University 104 2015-03-05 15:19:00 OFF

University 104 2015-03-05 16:16:00 ON

University 104 2015-03-05 18:16:00 OFF

University 104 2015-03-05 20:16:00 ON

大学104 2015-03-05 21:17:00关闭

大学104 2015-03-05 22:18:00 ON

我需要计算每个州的累计总分钟数' OFF'和' ON'每小时一小时。即我应该知道fname在每小时内保持关闭多少分钟。我在php中尝试了很多,但可以找到任何线索。任何身体可以帮助或建议查询或PHP脚本。我真的很感激。

1 个答案:

答案 0 :(得分:1)

考虑到$rs是您的相应查询的结果,我相信这将为您提供您正在寻找的结果。

$ontime = NULL;
$offtime = NULL;
$totalseconds = 0;

while($r = mysql_fetch_array($rs)){ 
    if($r["status"] == "OFF"){
        $offtime = strtotime($r["timestate"]);
    }
    if($r["status"] == "ON" AND $offtime !== NULL){
        $ontime = strtotime($r["timestate"]);
        $totalseconds += $ontime - $offtime;
        $offtime=NULL;
        $ontime=NULL; 
    }
}

$totalseconds将在几秒钟内保留您的总停机时间