2012-11-01 122 views
0

我有一個JSON服務提供給我幾分鐘的時間。然後我希望將這些分鐘轉換爲DD:HH:MM格式。 [天,小時,分鐘]Javascript日期解析

任何人都可以指向正確的方向或告訴我如何實現這一目標?

感謝德文

+0

給我們一些代碼 – George

+0

你得到什麼格式在「分鐘」中? – Briguy37

+0

嗨,夥計們。我從字面上得到分鐘。所以5467分鐘。是否有一種本地方法可以將它轉化爲DD:HH:MM,而不是寫我自己的方法? – user1434739

回答

1

您可以創建一個共同的功能,消除了一些儘可能高的,然後其餘再繼續:http://jsfiddle.net/sL43t/1/

var arr = []; 
var value = 5467; 

var gain = function(minutes) { 
    var amount = Math.floor(value/minutes); 
    arr.push(amount < 10 ? "0" + amount : amount); // add zero padding if needed 
    value %= minutes; 
}; 

gain(24 * 60); // minutes per day 
gain(60);  // minutes per hour 
gain(1);  // minutes per minute 

var str = arr.join(":"); 
+0

非常乾淨地完成。自從我的帖子後,我只有一半:)謝謝 – user1434739

0
var t = 123456; // the given minutes 

var days = Math.floor(t/(60 * 24)); 
var hours = Math.floor((t - days * 60 * 24)/60); 
var mintues = t - days * 60 * 24 - hours * 60; 
0
// assuming obj.totalMin to be total minutes 
var obj = { 
    totalMin : 4859 
} 

var days = Math.floor(obj.totalMin/(60 * 24));   
var hours = Math.floor(obj.totalMin/60) - (days * 24);   
var minutes = obj.totalMin % 60; 

document.write (days + ":" + hours + ":" + minutes); 

​ 

http://jsfiddle.net/vt6hZ/

0

如果你不想寫自己的功能,爲此,您可以你的電話號碼轉換成毫秒,並用它來創建一個日期對象。然後使用您選擇的任何格式輸出該日期對象。

1

您可以轉換使用像分鐘到天,小時和分鐘:

// Helper 
function z(n) { 
    return (n<10? '0' : '') + n; 
} 

var n = 5467; 
var days = n/1440 | 0; 
var hours = n % 1440/60 | 0; 
var mins = n % 60; 

alert(z(days) + ':' + z(hours) + ':' + z(mins)); // 03:19:07 
+0

這也是非常好的,因爲它是分開的部分。謝謝 – user1434739

0

試試這個

 var totalMinutes = ; 
     var days = totalMinutes/1440; 
     var totalHours = totalMinutes%1440; 
     var hours = totalHours/60; 
     var minutes = totalHours%60; 
     alert("DD:"+days+" HH:"+hours+" MM:"+minutes); 
0

我知道你發現你的答案,而只是拋出了這一點那裏,因爲它似乎對我更容易,也許幫助別人:

function makeTime(v, lead) { 
    v = parseInt(v); // ensures variable is an integer to do math too 
    var days = Math.floor(v/1440), 
     hrs = Math.floor(v/60 - (days*24)), 
     mins = xmins % 60; 
    var ret = { 
     days: lead ? "" + (days < 10 ? "0" + days : days) : days, 
     hrs: lead ? "" + (hrs < 10 ? "0" + hrs : hrs) : hrs, 
     mins: lead ? "" + (mins < 10 ? "0" + mins : mins) : mins 
    }; 
    ret.combo = ret.days + ":" + ret.hrs + ":" + ret.mins; 
    return ret; 
} 

var xmins = 11404; // ou can se your data or whatever, this is just an example of minutes 
var breakDown = makeTime(xmins); // this will return pure integers on each value 
    // OR!! 
var breakDown = makeTime(xmins, true); // the true parameter just simply decides if you want leading variable, and string on each 

// use 

$("#eleID").text(breakDown.combo); 
+0

偉大的東西。感謝您的貢獻。 – user1434739