2016-12-07 2 views
3

Momentan verwende ich moment.js, um die Anzeige von Zeit in einer node.js Anwendung zu verarbeiten - gibt es eine Möglichkeit, dass ich IMMER das Datum mit führenden Nullen formatieren kann, und atleast zwei Zeichen breit?Füge führende Nullen zu einer moment.js Zeit hinzu.

So für 9 Tage, 1 Stunde, 12 Minuten und 23 Sekunden

09:01:12:23 

oder für 1 Minute

00:00:01:00 

Dank jemand das kann


helfen, wie ich bin Berechnen der Zeit zwischen zwei Dingen in einer Datenbank und anschließendes Senden an moment.js in Sekunden.

duration.html(difference.add(1, "seconds").format("d:hh:mm:ss"));

Im Wesentlichen würde ich erzwingen möchte, dass auch bei den Tagen 0 sind sie angezeigt werden, zusammen mit der Null am Anfang für einstellige Zahlen. Diese

Antwort

5

können Sie verwenden moment-duration format Plug-in:

Verwenden Sie die Option trim Einheiten zu zeigen, die keinen Wert haben. Wie die Dokumentation sagt:

Führende Tokens werden automatisch abgeschnitten, wenn sie keinen Wert haben. Um dieses Verhalten zu beenden, legen Sie { trim: false } fest.

Hier ein Arbeitsbeispiel:

var d1 = moment.duration({ 
 
    seconds: 23, 
 
    minutes: 12, 
 
    hours: 1, 
 
    days: 9 
 
}); 
 
var d2 = moment.duration({ 
 
    minutes: 1 
 
}); 
 
console.log(d1.format('DD:HH:mm:ss')); 
 
console.log(d2.format('DD:HH:mm:ss', { trim: false }));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js"></script>

+0

Beachten Sie, dass sich das Moment-Dauer-Format von momentjs unterscheidet, weshalb trim nirgends auf der momentjs-Seite erscheint. Danke VincenzoC für {trim: false} – mcmacerson

+0

@mcmacerson Ich weiß, dass [Moment-Dauer-Format] (http://momentjs.com/docs/#/plugins/duration-format/) ist ein Momentjs Plug-in, ich ' Ich habe meine Antwort bearbeitet, um sie klarer zu machen. Als Nebenbemerkung gibt es ein offenes [Problem] (https://github.com/moment/moment/issues/1048, um die Dauerformat-Integration in Moment-Core zu planen). Ich bin froh, dass meine Antwort dir geholfen hat :) – VincenzoC

0

versuchen moment(your_date, "your_date_format").format("DD:HH:mm:ss");

+1

, dass die Arbeit gewohnt, weil bei der Frage suchen die OP die Dauer will nicht das Datum angezeigt –

+0

ohh .. Ich bin verwirrt. Du meinst, 9 ist keine von Tagen und kein Date? Recht? – Bhavana

+0

Frage wurde aktualisiert ya das ist es ist kein Datum nur Tage –

1

Verwendung:

function addZeros(d,h,m,s){ 
    return ("0"+d).substr(-2) + ":" +("0"+h).substr(-2) + ":"+("0"+m).substr(-2) + ":" +("0"+s).substr(-2); 
} 
+0

Verwenden Sie das für was? –

Verwandte Themen