Как я могу преобразовать секунды в HH-MM-SS
строку, используя JavaScript?
javascript
date
time
date-format
time-format
Ханнун Ясир
источник
источник
Ответы:
Вы не знаете свиданий ? это надо знать.
Используя datejs, просто напишите что-то вроде:
--Обновить
В настоящее время date.js устарел и не поддерживается, поэтому используйте « Moment.js », что гораздо лучше, как указал TJ Crowder.
- обновление 2
Пожалуйста, используйте @ Frank's решение в одну строку:
На сегодняшний день это лучшее решение.
источник
TypeError: Object [object Date] has no method 'clearTime'
.Вы можете сделать это без какой-либо внешней библиотеки JavaScript с помощью метода JavaScript Date, как показано ниже:
Или, согласно комментарию @Frank ; один лайнер:
источник
new Date(SECONDS * 1000).toISOString().substr(11, 8);
Object doesn't support property or method 'toISOString'
Я не думаю, что какая-либо встроенная функция стандартного объекта Date сделает это для вас более удобным способом, чем простая математика.
Пример:
Показать фрагмент кода
источник
0.05
вhours
переменной вернулось бы 180 секунд . Я положил его внутрь, чтобыparseInt
исправить это для моего случая, но я не думаю, что это будет точно для всего. Тем не менее, это помогло мне, так что спасибо!parseInt
его для анализа строк , а не манипулирования числами.Math.floor
будет соответствующей операцией здесь.seconds = Math.floor(totalSeconds % 60);
. Я тоже получил там десятичный результат.totalSeconds % 60
может иметь только дробную часть, еслиtotalSeconds
имеет дробную часть. Если вы хотите выступить, это будет зависеть от того, хотите ли вы потерять эту информацию или сохранить ее. (Другие операции на полу, которые мы делаем, не теряют никакой информации, потому что они просто очищают данные, которые в конечном итогеminutes
иseconds
.)console.log( hours +':'+ ('0'+minutes).slice(-2) +':'+ ('0'+seconds).slice(-2) );
Я знаю, что это довольно старое, но ...
ES2015:
Это выведет:
источник
Как указал Клитон в своем ответе , для этого можно использовать moment.js :
источник
moment().startOf('year').seconds(30000000).format('DDD HH:mm:ss')
..format('YYYY DDD HH:mm:ss')
источник
Это делает трюк:
(Источник отсюда )
источник
мы можем сделать эту функцию намного короче и четче, но это уменьшает удобочитаемость, поэтому мы напишем ее как можно более простой и стабильной.
или вы можете проверить это, работая здесь :
источник
Попробуй это:
источник
Вот расширение класса Number. toHHMMSS () преобразует секунды в строку чч: мм: сс.
источник
Легко следовать версии для новичков:
источник
Эта функция должна сделать это:
Не передавая разделитель, он использует
:
(по умолчанию) разделитель:Если вы хотите использовать
-
в качестве разделителя, просто передайте его как второй параметр:Смотрите также эту скрипку .
источник
:
по умолчанию дляseparator
параметра, как я уже объяснил. Это сделано заявлениемtypeof separator !== 'undefined' ? separator : ':'
. Кроме того, ваша функция в значительной степени идентична моей, за исключением некоторых косметических изменений, и они оба должны давать одинаковый результат ... за исключением того, что моя версия имеет гораздо лучшую поддержку браузера. Ваша не будет работать в ЛЮБОЙ версии Internet Explorer или MS Edge <14.ниже приведен код, который преобразует секунды в формат чч-мм-сс:
Получить альтернативный метод из Конвертировать секунды в формат HH-MM-SS в JavaScript
источник
Для особого случая HH: MM: SS.MS (например, «00: 04: 33.637»), используемого FFMPEG для указания миллисекунд .
Пример использования, транспортный таймер в миллисекундах:
Пример использования, связанный с медиа-элементом
Вне вопроса эти функции написаны на php:
источник
+ "." + p.getMilliseconds()
, просто используяnew Date(p.getTime()-o.getTime()).toISOString().split("T")[1].split("Z")[0]
источник
Я просто хотел дать небольшое объяснение хорошему ответу выше:
Во второй строке, поскольку в 1 часе 3600 секунд, мы делим общее количество секунд на 3600, чтобы получить общее количество часов. Мы используем parseInt для удаления любого десятичного числа. Если totalSec был 12600 (3 с половиной часа), то parseInt (totalSec / 3600) вернул бы 3, так как у нас будет 3 полных часа. Зачем нам нужен% 24 в этом случае? Если мы превышаем 24 часа, скажем, у нас есть 25 часов (90000 секунд), то по модулю здесь мы снова вернемся к 1, а не к 25. Это ограничивает результат в пределах 24-часового лимита, так как есть 24 часа В течение одного дня.
Когда вы видите что-то вроде этого:
Думайте об этом так:
источник
Вовлечение в эту старую ветку - ОП указывал ЧЧ: ММ: СС, и многие решения работают, пока вы не поймете, что вам нужно более 24 часов в списке. И, может быть, вы не хотите больше, чем одну строку кода. Ну вот:
Возвращает H +: MM: SS. Чтобы использовать это, просто используйте:
... Я пытался заставить его использовать наименьшее количество кода для хорошего однострочного подхода.
источник
Вы пытались добавить секунды к объекту Date?
Пример: https://jsfiddle.net/j5g2p0dc/5/
Обновлено: пример ссылки отсутствует, поэтому я создал новую.
источник
addSeconds
для объекта Date, какDate.prototype.addSeconds = function(seconds){...}
. Да, работает, спасибо за обновление.Вот функция для преобразования секунд в формат чч-мм-сс на основе ответа Powtac здесь
jsfiddle
Пример использования
источник
Посмотрев на все ответы и не обрадовавшись большинству из них, я пришел к этому. Я знаю, что я очень поздно к разговору, но здесь это все равно.
Я создаю новый объект Date, изменяю время на мои параметры, преобразовываю объект Date в строку времени и удаляю дополнительные элементы, разбивая строку и возвращая только ту часть, которая требуется.
Я думал, что поделюсь этим подходом, так как он устраняет необходимость в регулярных выражениях, логике и математической акробатике для получения результатов в формате «ЧЧ: мм: сс», и вместо этого он опирается на встроенные методы.
Вы можете ознакомиться с документацией здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
источник
Есть много вариантов решения этой проблемы, и очевидно, что есть хороший вариант, но я хочу добавить еще один оптимизированный код здесь
если вы не хотите форматировать ноль с числом меньше 10, вы можете использовать
}
Пример кода http://fiddly.org/1c476/1
источник
В одной строке, используя решение TJ Crowder:
В одной строке другое решение, которое также считает дни:
Источник: https://gist.github.com/martinbean/2bf88c446be8048814cf02b2641ba276
источник
источник
Вы также можете использовать следующий код:
источник
new Date().toString().split(" ")[4];
результат
15:08:03
источник
Для любого, кто использует AngularJS, простое решение - отфильтровать значение с помощью API даты , который преобразует миллисекунды в строку на основе запрошенного формата. Пример:
Обратите внимание, что для этого требуются миллисекунды, поэтому вы можете захотеть умножить timeRemaining на 1000, если вы конвертируете из секунд (как был сформулирован исходный вопрос).
источник
Я столкнулся с случаем, когда некоторые упоминали, что количество секунд больше дня. Вот адаптированная версия ответа @Harish Anchu с самым высоким рейтингом, который учитывает более длительные периоды времени:
Пример:
источник
Пример использования
источник
Ни один из ответов здесь не удовлетворяет моим требованиям, так как я хочу быть в состоянии справиться
Несмотря на то, что они не требуются ФП, эффективная практика заключается в том, чтобы охватить крайние случаи, особенно когда это требует небольших усилий.
Совершенно очевидно, что ОП означает НЕСКОЛЬКО секунд, когда он говорит секунды . Зачем привязывать вашу функцию
String
?источник
secondsToTimeSpan(8991)
возвращается,6.00:05:51
тогда как я думаю, что это должно вернуться00:02:29:51
Я использовал этот код раньше, чтобы создать простой объект timepan:
источник