【发布时间】:2017-04-12 15:20:47
【问题描述】:
我有一个应用程序可以在设备开启和关闭时进行记录。它将详细信息记录在 mysql 数据库中。我想计算设备已经开启了多长时间。我使用 jquery/ajax 在两个数组中获取两组数据:ON 和 OFF。
数据库结构:
device id logtime status
---------------------------------------------------
17x1p14e6662 April 12th 2017, 1:05:52 pm ON
17x1p14e6662 April 12th 2017, 1:06:34 pm OFF
.... etc
然后我循环遍历它们以计算时间差。这工作正常。然后如何将所有结果时间输出添加到单个时间中?
这是 jquery/ajax 的一部分:
我的 php 后端的响应是:
{"result":{"trueresults":[["April 12th 2017, 1:05:52 pm"],["April 12th 2017, 1:05:54 pm"],["April 12th 2017, 1:06:54 pm"],["April 12th 2017, 4:54:10 pm"]],"falseresults":[["April 12th 2017, 1:05:53 pm"],["April 12th 2017, 1:05:55 pm"],["April 12th 2017, 1:07:02 pm"],["April 12th 2017, 4:56:18 pm"]]},"errors":false}
实际的 jQuery 代码:
.success(function(response) {
if(!response.errors && response.result) {
var trueresultgroup = response.result.trueresults;
var falseresultgroup = response.result.falseresults;
for (i = 0; i < trueresultgroup.length; i++) {
var on = (trueresultgroup[i]).toString();
var off = (falseresultgroup[i]).toString();
var ms = moment(off,"MMMM Do YYYY, h:mm:ss a").diff(moment(on,"MMMM Do YYYY, h:mm:ss a"));
var d = moment.duration(ms);
var s = d.format("hh [hours] :mm [minutes] :ss [seconds]");
$("#divtimes").append('<p>'+s+'</p>');
}
} else {
alert("error");
}
});
所以我的 html 中的输出如下所示:
<div id="divtimes" class="m-b-30"><p>01 seconds</p><p>01 seconds</p><p>08 seconds</p><p>02 minutes :08 seconds</p></div>
我想要的输出应该是所有这些的总和:
02 minutes :18 seconds
【问题讨论】:
标签: javascript jquery ajax momentjs