将两个持续时间加在一起的智能方法是什么? (JS / PHP / SQL)

时间:2014-02-13 03:51:41

标签: javascript php sql

我说的是两个持续时间(例如,“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的余数......但这看起来很混乱。我应该使用更清洁,更合适的解决方案吗?

2 个答案:

答案 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);
}