407 votes

JavaScript secondes de temps de chaîne au format hh:mm:ss

Je veux convertir une durée de temps, c'est à dire, le nombre de secondes, séparés par deux points de chaîne d'heure (hh:mm:ss)

J'ai trouvé quelques réponses ici, mais ils parlent tous de la conversion de x heures et x minutes format.

Donc, il y a un petit extrait de code qui fait cela dans jQuery bruts JavaScript?

Merci.

704voto

powtac Points 18619
String.prototype.toHHMMSS = function () {
    var sec_num = parseInt(this, 10); // don't forget the second param
    var hours   = Math.floor(sec_num / 3600);
    var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
    var seconds = sec_num - (hours * 3600) - (minutes * 60);

    if (hours   < 10) {hours   = "0"+hours;}
    if (minutes < 10) {minutes = "0"+minutes;}
    if (seconds < 10) {seconds = "0"+seconds;}
    var time    = hours+':'+minutes+':'+seconds;
    return time;
}

Vous pouvez maintenant l'utiliser comme:

alert("5678".toHHMMSS());

353voto

Harish Anchu Points 1102

Vous pouvez gérer pour le faire sans JS externe de la bibliothèque avec l'aide de JS Date de la méthode comme suit:

    var date = new Date(null);
    date.setSeconds(SECONDS); // specify value for SECONDS here
    date.toISOString().substr(11, 8);

83voto

Raj Points 341

Pour obtenir le temps de la partie au format hh:MM:ss, vous pouvez utiliser cette expression régulière:

var myDate = new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");

(Cela a été mentionné ci-dessus dans le même post par quelqu'un, merci pour ça.)

61voto

JellicleCat Points 4694

Je recommande ordinaire javascript, à l'aide de l'objet Date:

var seconds = 9999;
// multiply by 1000 because Date() requires miliseconds
var date = new Date(seconds * 1000);
var hh = date.getUTCHours();
var mm = date.getUTCMinutes();
var ss = date.getSeconds();
// This line gives you 12-hour (not 24) time
if (hh > 12) {hh = hh - 12;}
// These lines ensure you have two-digits
if (hh < 10) {hh = "0"+hh;}
if (mm < 10) {mm = "0"+mm;}
if (ss < 10) {ss = "0"+ss;}
// This formats your string to HH:MM:SS
var t = hh+":"+mm+":"+ss;
document.write(t);

(Bien sûr, le Date objet créé aura une date réelle associée avec elle, mais que les données qui lui est étranger, donc, pour ces fins, vous n'avez pas à vous inquiéter à ce sujet.)

44voto

Ash Burlaczenko Points 7918

Google recherche a permis d'obtenir ce résultat:

function secondsToTime(secs)
{
    secs = Math.round(secs);
    var hours = Math.floor(secs / (60 * 60));

    var divisor_for_minutes = secs % (60 * 60);
    var minutes = Math.floor(divisor_for_minutes / 60);

    var divisor_for_seconds = divisor_for_minutes % 60;
    var seconds = Math.ceil(divisor_for_seconds);

    var obj = {
        "h": hours,
        "m": minutes,
        "s": seconds
    };
    return obj;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X