1

我正在尝试找到一个将秒转换为时间格式的好解决方案。

到目前为止,我有这个功能可以很好地满足我的需求。

function secondstotime(secs)
{
    var t = new Date(1970,0,1);
    t.setSeconds(secs);
    var s = t.toTimeString().substr(0,8);
    if(secs > 86399)
        s = Math.floor((t - Date.parse("1/1/70")) / 3600000) + s.substr(2);
    return s;
}

alert(secondstotime(1920));

所以你可以在 jsfiddle http://jsfiddle.net/7Pp5z/中运行它

所以这很好用,可以工作几个小时等,但我希望把时间左边的零去掉。举个例子

我要 00:32:00

变成 32:00 所以输出到浏览器时看起来更好

有人能告诉我最好的方法吗,或者有没有人可以分享其他功能。

谢谢

4

3 回答 3

2

把条件放在下面:

if(s.substr(0, 2) == 00)
        return s.substr(3);

工作演示http://jsfiddle.net/7Pp5z/2/

于 2013-08-24T10:20:10.137 回答
0

首先,您应该更清楚地说明您的问题。

“将秒转换为时间格式” 秒是表示持续时间的一种方式,但需要某种参考才能使其相关。

AD、UTC 或持续时间。

请参阅 http://en.wikipedia.org/wiki/ISO_8601 以获得胜利。

在 JavaScript 控制台中试试这个:

d = new Date(1920000)
Thu Jan 01 1970 01:32:00 GMT+0100 (Westeuropäische Normalzeit)
d.getUTCMinutes()
32
d.getUTCSeconds()
0
于 2013-08-24T10:17:54.410 回答
0

这是一个从给定的秒数 [s] 以请求的格式显示时间字符串的函数:

function showtime(s){
   var time = new Date(new Date('1970/1/1 00:00').setSeconds(s))
                .toTimeString().split(' ')[0].split(':');
   return (+time[0] ? time[0]+':' : '') +
          (+time[1] || +time[0]  ? time[1] +':' : '') +
           time[2];
}

你可以在这个jsFiddle中找到一个演示。

于 2013-08-24T10:45:43.643 回答