$query=mysql_query("SELECT @rownum := @rownum + 1 AS id,t.convo_id,t.body_xml,FROM_UNIXTIME(t.timestamp) FROM messages t,(SELECT @rownum := 0) r WHERE t.convo_id='137'");
$recordset = array();
$i = 0;
while ($row = mysql_fetch_array($query))
{
$recordset[$i] = $row;
if ($i > 0)
{
$recordset[$i-1]['nextid'] = $row['0'];
$datetime1 = new DateTime($recordset[$i-1][3]);
$datetime2 = new DateTime($recordset[$i][3]);
$interval = $datetime1->diff($datetime2);
$hours = $interval->format('%h');
$minutes = $interval->format('%i');
$seconds = $interval->format('%s');
?>
<tr>
<td><?php echo $row[0];?></td>
<td><?php echo $row[1];?></td>
<td><?php echo $row[2];?></td>
<td><?php echo $row[3];?></td>
<td><?php echo $hours .":".$minutes.":".$seconds ?></td>
<?php
}
$i++;
}
出力 -------------------------------------------------- ---------------------------------- SL.No Convo メッセージの日付 期間 ID -------------------------------------------------- ---------------------------------- 2 137 こんにちは 2012-08-30 10:29:59 0:0:21 3 137 お元気ですか?2012-08-30 10:30:39 0:0:40 4 137 良い 2012-08-30 10:31:05 0:0:26 5 137 abc 2012-08-30 15:05:50 2:16:49 6 137 xyz 2012-08-30 15:07:03 0:1:13 7 137 紀元前 2012-08-30 15:07:39 0:0:36
継続時間が 10 分を超える場合は、新しい会話と見なし、以前の会話の開始時刻と終了時刻をメモします。
いいえを見つける必要があります。会話の合計時間と各会話の合計時間など。
-------------------------------------------------- -------------------------------------- 開始 終了 合計時間 -------------------------------------------------- -------------------------------------- 2012-08-30 10:29:59 2012-08-30 10:31:05 0.1.37