业务中有这样的需求,统计某个行为的时间长度,例如在google统计中的用户在页面停留时间,对于如何考量用户停留时间不是本文的讨论范围,有兴趣的朋友可以自行了解。

本文关注的是如何将业务中记录下来的使用时间长度,以一种更为友好直观的方式展现出来。统计时间通常是以两个时间戳的差作为基础记录下来,一般一毫秒为单位。js从服务器获取到相应数据后,需要对这样的毫秒数据进行处理,使其表现形式更佳。举例说明:

原始数据为3601000毫秒,为了计算方便此处假定数据已经初步处理为整型的以秒为单位的数据–3601,希望通过一个方法,得到以天、小时、分钟、秒为单位的时间形式,例如3天2小时15分钟32秒

本例中,经过转换的时间为1小时1秒

下面给出代码示例:

```javascript

function secondToDate(second) { if (!second) { return 0; } var time = ‘’; if (second >= 24 * 3600) { time += parseInt(second / (24 * 3600)) + ‘天’; second %= 24 * 3600; } if (second >= 3600) { time += parseInt(second / 3600) + ‘小时’; second %= 3600; } if (second >= 60) { time += parseInt(second / 60) + ‘分钟’; second %= 60; } if (second > 0) { time += second + ‘秒’; } return time; } \n```

没有对年做处理,业务本身不会用到,除非数据出现非法情况。当然如果你有需要,也可以添加哦。

————-2012-04-12更新————-

感谢loveunk,发现了一个bug,已经修正。