2015-07-07 2 views
0

Я пытаюсь отформатировать время. У меня есть функция, которая возвращает секунды, минуты и часы, но у меня проблема с протоколом. После минутных ударов 60, я хотел бы сбросить минутное время до 0 и перезапустить часы. Есть идеи?Как правильно отформатировать время

function formatTime(seconds) { 
    hours = Math.floor((seconds/60)/60); 
    hours = (hours >= 10) ? minutes : "0" + hours; 
    minutes = Math.floor(seconds/60); 
    minutes = (minutes >= 10) ? minutes : "0" + minutes; 
    seconds = Math.floor(seconds % 60); 
    seconds = (seconds >= 10) ? seconds : "0" + seconds; 

    if (duration >= hours) { 
    return hours + ":" + minutes + ":" + seconds; 
    } else { 
    return minutes + ":" + seconds; 
    } 
} 

Если у вас есть другие вопросы, дайте мне знать. Эта функция используется для форматирования счетчика продолжительности звукового клипа.

+1

Если это не для курсового, я предложил бы использовать библиотеку, например [DateJS] (http://datejs.com) или [MomentJS] (HTTP : //momentjs.com). Судя по последним спорам в JS, это всемогущая боль. –

+0

Если у вас нет ограничений на библиотеки, посмотрите http://momentjs.com/ –

+0

Дубликат https://stackoverflow.com/questions/1322732/convert-seconds-to-hh-mm-ss -with-javascript или https://stackoverflow.com/questions/6312993/javascript-seconds-to-time-string-with-format-hhmmss/6313008#6313008 – svenhornberg

ответ

0

Вы должны сделать следующее:

  • сосчитать часы
  • вычитать hours * 60 * 60 от seconds
  • считать минуты
  • вычитания minutes * 60 из seconds
  • остальные являются Секундная

Кстати, для расчета времени и даты я абсолютно рекомендую MomentJS.

0

Благодарим вас за помощь. Основываясь на многих рекомендациях, я буду смотреть на использование импульсов. Однако с помощью некоторых из этих сообщений мне также удалось заставить работать функция времени в формате. Это теперь делает то, что мне нужно, и выглядит следующим образом:

function formatTime(seconds) { 
    hours = Math.floor((seconds/3600)); 
    hours = (hours >= 10) ? minutes : "0" + hours; 
    minutes = Math.floor((seconds - (hours * 3600))/60); 
    minutes = (minutes >= 10) ? minutes : "0" + minutes; 
    seconds = Math.floor(seconds - hours * 3600) - (minutes * 60); 
    seconds = (seconds >= 10) ? seconds : "0" + seconds; 

    if (duration >= hours) { 
    return hours + ":" + minutes + ":" + seconds; 
    } else { 
    return minutes + ":" + seconds; 
    } 
} 
Смежные вопросы