2013-08-08 5 views
0

Я ищу js, который делает что-то похожее на это: http://www.unitarium.com/time-calculator.Вычислить mm: ss + mm: ss

Мои длины песен находятся в массиве, а не в полях формы. И результат должен отображать hh: mm: ss при необходимости (или всегда).

Это страница, где я хочу использовать это: http://flamencopeko.net/songs.php.

+1

Что вы пробовали? Рассмотрите возможность поиска [в файле timecalc.js на странице _you_, связанной с] (http://www.unitarium.com/timecalc.js). Если вы застряли в попытке, то задайте здесь вопрос, но _show_ ваши усилия –

+1

Храните (или вычисляйте) длину песни в чистые секунды (например, 63 с за 1:03), добавьте их и пересчитайте минуты (или часы) из результат. – Nero

ответ

1

Сделать функцию для преобразования формата mm:ss в секунды, и один, чтобы преобразовать секунды в формат hh:mm:ss, конвертировать все значения в секундах, сложите их вместе, и форматировать результат:

function parseMS(s) { 
    var parts = s.split(':'); 
    return parseInt(parts[0], 10) * 60 + parseInt(parts[1], 10); 
} 

function formatTwo(n) { 
    return (n < 10 ? '0' : '') + n.toString(); 
} 

function formatHMS(s) { 
    var m = Math.floor(s/60); 
    s %= 60; 
    var h = Math.floor(m/60); 
    m %= 60; 
    return formatTwo(h) + ':' + formatTwo(m) + ':' + formatTwo(s); 
} 

var times = ['14:23', '11:08', '18:59']; 

var sum = 0; 
for (var i = 0; i < times.length; i++) sum += parseMS(times[i]); 
var result = formatHMS(sum); 

alert(result); 

Demo: http://jsfiddle.net/u6B4g/

+0

Это выглядит потрясающе. Тестирование сейчас. Огромное спасибо! –

+0

Работает идеально. Попытка получить длину песни в массив, а затем json здесь http://flamencopeko.net/songs_lengths.php. Источник: http://flamencopeko.net/songs_lengths.txt. –

+0

Не понимаю json. Кроме того, я даже не уверен, что это массив php: ' $ file) { $ contents = file ($ file); $ total = trim ($ contents [1]); echo ("

" . $total . "
"); } ?> ' Не так ли? –

0

Я был в состоянии использовать этот PHP:

$str_time = "2:50"; 

sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds); 

$time_seconds = isset($seconds) ? $hours * 3600 + $minutes * 60 + $seconds : $hours * 60 + $minutes; 

от Convert time in HH:MM:SS format to seconds only? сделать бруски для моей песни -lengths здесь: http://flamencopeko.net/songs.php.

Я попытаюсь использовать это, чтобы получить общее игровое время.

Я думаю, что array_sum() - это путь, но я не знаю, как это сделать.

До настоящего времени источник: http://flamencopeko.net/covers.txt.

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