我说的是两个持续时间(例如,“2小时,4分钟”+“7小时,2分钟”); 不两个时间戳。我用谷歌搜索了一段时间,我能找到的一切都在谈论计算日期之间的差异。
我正在使用SQL,PHP和JavaScript;我的数据库有一个事件列表及其持续时间,我希望能够总结SELECT
语句的总持续时间。显而易见的解决方案是将时间缩短,说
total secs = first two chars*60*60 + second two chars*60 + last two chars
然后将总秒数乘以60*60
以获得十进制小时数的持续时间,将其向下舍入并保留HH:mm
的余数......但这看起来很混乱。我应该使用更清洁,更合适的解决方案吗?
答案 0 :(得分:1)
你应该将字段“time”改为“int”
答案 1 :(得分:1)
可以通过转换为公共单位(在本例中为分钟)添加时间,添加分数,然后转换回小时和分钟。
如果您有“2小时4分钟”之类的字符串,可以使用以下内容将其转换为分钟:
function stringToMinutes (s) {
var a = s.match(/\d+/g);
return a[0]*60 + +a[1];
}
转换回小时和分钟,如:
function minutesToString(m) {
function addS(n) {return n!= 1? 's' : '';}
var hr = m / 60 |0;
var min = m % 60;
return hr + ' hour' + addS(hr) + ', ' + min + ' minute' + addS(min);
}