Конвертировать секунды в HH-MM-SS с JavaScript? - PullRequest
191 голосов
/ 24 августа 2009

Как я могу преобразовать секунды в HH-MM-SS строку, используя JavaScript?

Ответы [ 33 ]

0 голосов
/ 02 марта 2016

с использованием моментов для расчета в один день

var number = 10000(milliseconds); 
var momentObject = moment.duration(number);  

var output =  momentObject.hours()+"HH"+momentObject.minutes()+"MM"+minuteObject.seconds()+"S" 
0 голосов
/ 29 апреля 2019

Ни один из ответов здесь не удовлетворяет моим требованиям, так как я хочу быть в состоянии обработать

  1. Большое количество секунд (дней) и
  2. Отрицательные числа

Хотя это не требуется ФП, эффективная практика заключается в том, чтобы охватить крайние случаи, особенно когда это требует небольших усилий.

Совершенно очевидно, что ОП означает ЧИСЛО секунд, когда он говорит секунд . Зачем привязывать вашу функцию к String?

function secondsToTimeSpan(seconds) {
    const value = Math.abs(seconds);
    const days = Math.floor(value / 1440);
    const hours = Math.floor((value - (days * 1440)) / 3600);
    const min = Math.floor((value - (days * 1440) - (hours * 3600)) / 60);
    const sec = value - (days * 1440) - (hours * 3600) - (min * 60);
    return `${seconds < 0 ? '-':''}${days > 0 ? days + '.':''}${hours < 10 ? '0' + hours:hours}:${min < 10 ? '0' + min:min}:${sec < 10 ? '0' + sec:sec}`
}
secondsToTimeSpan(0);       // => 00:00:00
secondsToTimeSpan(1);       // => 00:00:01
secondsToTimeSpan(1440);    // => 1.00:00:00
secondsToTimeSpan(-1440);   // => -1.00:00:00
secondsToTimeSpan(-1);      // => -00:00:01
0 голосов
/ 08 августа 2013

new Date().toString().split(" ")[4];

результат 15:08:03

...