2013-04-23 5 views
1

У меня есть простое поле ввода, которое позволяет пользователям вводить количество минут, которые они проработали в этот день. Есть ли способ, чтобы как только они ввели данные в это поле, у меня может быть дисплей рядом с входом, отображающим время в часах и минутах?Добавить минуты в поле ввода и отображать часы/минуты

ответ

3
var m = $('#input').val(); 
var hours = Math.floor(m/60); 
m = m % 60; 

$('#someDiv').text('hours: ' + hours + 'minutes: ' + m); 
+0

+1, но это должно быть '$ (» #someDiv '). text (' hours: '+ parseInt (hours) +' minutes: '+ m); ', без' parseInt' он показывает 'часы: 1.1666666666666667minutes: 10' за' 70'. –

+1

@SheikhHeera, спасибо, я не думал о десятичной точке. Я предпочел «Math.floor». – gdoron

+0

'Math.floor' лучше, чем это. –

0

Вы могли бы сделать это, чтобы получить часы/минуты в формате hh:mm:

HTML:

<input type="text" id="mins" /> 
<span id="hm"></span> 

JavaScript:

$('#mins').change(function(){ 
    var h = Math.floor($('#mins').val()/60); 
    h = "0" + h; 
    h = h.substr(h.length - 2, 2); 
    var m = Math.floor($('#mins').val() % 60); 
    m = "0" + m; 
    m = m.substr(m.length - 2, 2); 

    $('#hm').html(h + ':' +m); 
}); 

Jsfiddle example

0

Некоторые простые математические и форматирование должны получить вас там.

function getTimeStringFromMinutes(m) { 
    var hours = Math.floor(m/60); 
    var seconds = (m - Math.floor(m)) * 60; 
    minutes = Math.floor(m % 60); 
    var output = (hours < 10 ? '0'+hours : hours) + 
       ":" + 
       (minutes < 10 ? '0'+minutes : minutes) + 
       ":" + 
       (seconds < 10 ? '0'+seconds : seconds); 
    return output; 
} 
// getTimeStringFromMinutes(128.5) --> "02:08:30" 
// getTimeStringFromMinutes('128.5') --> "02:08:30" 

(PS не пугайтесь тройными операторов они просто динамические значения в виде: условия: valueIfTrue: valueIfFalse)

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