2014-11-21 2 views
1

У меня есть строка вроде 120 Я хочу, чтобы преобразовать во времени, как 02:00(hh:mm). Актуально:Как преобразовать строку в Время в javascript

120 

Ожидаемое:

02:00. 

так, пожалуйста, предложите результат.

+0

Только раз - то лучше всего использовать moment.js –

+0

да только нужно время, в JavaScript –

+0

Каким 120 2:00? –

ответ

3

Fiddle: http://jsfiddle.net/ow418gLc/1/

var value = 120 
var hours = pad(Math.floor(value/60)); 
var minutes = pad(value % 60); 

function pad(n){ 
    n = n.toString(); 
    n = n.length < 0 ? n: ("0" + n); 
    return n; 
}; 

console.log(hours + ":" + minutes); 

выход:

02:00 

EDIT: Существует небольшая ошибка в обивке выше, и я преобразовал это к реальной функции.

function convertMinutesToTime(minutes) { 
    function pad(n) { 
     n = n.toString(); 
     n = n.length < 2 ? ("0" + n) : n; 
     return n; 
    }; 
    var paddedHours = pad(Math.floor(minutes/60)); 
    var paddedMinutes = pad(minutes % 60); 

    return paddedHours + ":" + paddedMinutes 
} 

console.log(convertMinutesToTime(120)); 
+0

он дает 00: 020 ожидается-02:00. –

+0

Работает ли версия редактирования для вас? Вот скрипка: http://jsfiddle.net/ow418gLc/2/ –

1
var mins = 120; 

var h = Math.floor(mins/60); 
var t = (h < 10 ? "0" + h : h) + ":" + ("00" + mins % 60).slice(-2); 
1

Вы, вероятно, нужно сделать три шага:

  1. превратить строку в номер:

    var number = parseInt(string, 10); 
    
  2. Создание Date от количества секунд :

    var date = new Date(2000, 0, 1, 0, 0, seconds); 
    
  3. Создайте отформатированную строку даты от Date. Для этого, вы могли бы использовать moment.js и сделать:

    var formatted = moment(date).format('hh:ss');