質問を正しく表現する方法がわかりませんが、デバイスがオンになっている合計時間を計算しようとしています。私は、デバイスがオンまたはオフになっている時間を記録するmysqlデータベースを持っています。日付と時刻の合計時間を計算する
私のデータベースがどのように見えるかの例:私は(Get the time difference between two datetimesから参照)momentJS、このようなものを使用して2つの期間の間の差を計算する方法を知っている
device id logtime status
---------------------------------------------------
17x1p14e6662 April 12th 2017, 1:05:52 pm ON
17x1p14e6662 April 12th 2017, 1:06:34 pm OFF
17x1p14e6662 April 12th 2017, 1:07:02 pm ON
17x1p14e6662 April 12th 2017, 1:14:00 pm OFF
17x1p14e6662 April 12th 2017, 1:34:52 pm ON
17x1p14e6662 April 12th 2017, 3:25:20 pm OFF
17x1p14e6662 April 12th 2017, 5:30:00 pm ON
:
var now = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";
var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");
デバイスのすべてのレコードを取得する場合、各「オン」と「オフ」の合計時間を計算するにはどうすればよいですか?
'オン'時間も 'オフ'時間ですか? –
はい、常に交互に表示され、「ON」の後に「OFF」が続きます。 – Bruno
なぜなら、すべての 'ON'とすべての 'OFF'時間の配列を作るだけではいかがですか?その後、それらをループして差を計算してください... –