2017-04-08 18 views
0

我想在下面的代碼中將album.songs[i].duration的值轉換,以便它顯示hr:mn:sc而不是其存儲的格式,即秒。我可以在這行代碼中執行此操作嗎?如何在javascript中將值轉換爲hr:mn:sc格式

var $newRow = createSongRow(i + 1, album.songs[i].title, album.songs[i].duration);

+0

你想秒轉換爲小時:MN:SC? – Hearner

+0

告訴我們你試過的東西,請 – Oskar

+0

是的,我想將秒轉換爲hr:mn:sc – compostbrain

回答

0

這是基本的數學...

function convert(s) { 
 
    var hr = (Math.floor(s/3600)); 
 
    var mn = (Math.floor(s % 3600/60)); 
 
    var sc = (Math.floor(s % 60)); 
 
    
 
    return hr +":"+ mn +":"+ sc; 
 
} 
 

 

 
/* for example */ 
 
var seconds = 345432; 
 
console.log(convert(seconds));

+0

謝謝,我結束了不需要小時,所以我用下面:'const filterTimeCode =(timeInSeconds)=> {let seconds = parseFloat(timeInSeconds);讓mn = Math.floor(秒%3600/60);讓sc = Math.floor(秒%60); return(mn +「:」+ sc); };' – compostbrain

0

考慮到要在人力資源的格式轉換的持續時間(秒):MN:SC ,我們可以按照下面的方法在香草中javascript:

var duration = 5000; // seconds 
var hour = parseInt(duration/3600); // as 1 hour = 3600 seconds 
var minutes = parseInt((duration - (hour * 3600))/60); // as 1 minute = 60 seconds 
var seconds = duration - (hour * 3600) - (minutes * 60); 
var durationStr = hour + ':' + minutes + ':' + seconds; 
console.log(durationStr); // should print 1:23:20 
0

擴展在Hearner的答案,用填充分鐘和秒鐘< 10:

function pad(num) { 
 
    if (num < 10) return '0' + num; 
 
    return num; 
 
} 
 

 

 
function convert(s) { 
 
    var hr = (Math.floor(s/3600)); 
 
    var mn = pad(Math.floor(s % 3600/60)); 
 
    var sc = pad(Math.floor(s % 60)); 
 
    
 
    return hr +":"+ mn +":"+ sc; 
 
} 
 

 

 
/* for example */ 
 
var seconds = 3661; 
 
console.log(convert(seconds)); // 1:01:01 instead of 1:1:1 
 

 
// and you would use: 
 
// var $newRow = createSongRow(i + 1, album.songs[i].title, convert(album.songs[i].duration));

+0

謝謝Kev!我是一個編碼新手。我最終不需要幾個小時,因爲所有的輸入都會少於1小時。這裏是我使用的: 'const filterTimeCode =(timeInSeconds)=> {seconds} = parseFloat(timeInSeconds); let mn = Math.floor(seconds%3600/60); let sc = Math.floor(seconds%60); return(mn +「:」+ sc); };' – compostbrain

+0

@compostbrain儘管秒仍然需要填充函數,否則,例如,61秒看起來像「1:1」而不是「1:01」。順便說一句,就本網站而言:任何你認爲有幫助的答案,隨時都可以上傳,並在適當的時候接受。 – Kev

相關問題