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

Так это прекрасно работает и работает в течение нескольких часов и т.д., но я ищу, чтобы лишить нули слева от времени. На примере

я хочу 00: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

Извините, что Ashok ваш работает, спасибо, это обновленная версия http: // jsfiddle. net/7Pp5z/4/thanks;) – 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

Вот функция для отображения времени строку в требуемом формате из заданное количество секунд [сек]:

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.

Смежные вопросы