我陷入困境可能是由于我缺乏专业知识。我有以下mysql表:
FDNAME-fcode-时间状态-状态
大学104 2015-03-05 01:37:00关闭
大学104 2015-03-05 01:42:00 ON
大学104 2015-03-05 01:55:00关闭
大学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关闭
大学104 2015-03-05 11:16:00 ON
大学104 2015-03-05 12:17:00关闭
大学104 2015-03-05 13:17:00 ON
大学104 2015-03-05 15:19:00关闭
大学104 2015-03-05 16:16:00 ON
大学104 2015-03-05 18:16:00关闭
大学104 2015-03-05 20:16:00 ON
大学104 2015-03-05 21:17:00关闭
大学104 2015-03-05 22:18:00 ON
我需要计算每个时钟小时每个状态“关闭”和“打开”的累积总分钟数。即我应该知道一个fname在每个小时内保持关闭状态的时间。我在php中尝试了很多,但可以找到任何线索。任何机构都可以根据查询或php脚本提供帮助或建议。我会很感激。
最佳答案
考虑到$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
将以秒为单位保留您的总停机时间