2013-08-24 87 views
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/

运行此所以这伟大工程,工程等个小时,但我期待到零地带到的时间的左侧。以例子

我想0时32分00秒

变成32:00,所以它看起来更好,当输出到浏览器的方式

有人能告诉我这样做或做的最好办法任何人都有可能分享的另一个功能。

谢谢

+1

相对于什么秒? – stackunderflow

回答

2

把下面的条件:

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

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

+0

这个问题是不断变化的时间不是一个集数我需要它动态地工作说http://jsfiddle.net/7Pp5z/3/ – user1503606

+0

对不起阿肖克你的工作感谢这里是一个更新的版本http:// jsfiddle。 net/7Pp5z/4 /谢谢;) – user1503606

0

首先你应该更清楚地陈述你的问题。

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

A.D.,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 
+0

对不起,我有一个脚本,不断更新在几秒钟内,我需要将其转换为可读的时间格式,无需额外的零任何一方输出到浏览器。 – user1503606

+0

我的观点是:你并不需要你和响应者不断做出的所有不好的代码越来越模糊。 正如我所说的,您可以基于毫秒值直接构造Date对象。 然后,您可以使用其各种getUTC ...方法来避免特定于语言环境的时区问题。 我唯一遗漏的是填充和其他格式标记。 – stackunderflow

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中找到演示。