var date = "2012-01-18T16:03";
var date = new Date(date);
console.log(date.getMinutes());
console.log(date.getMinutes().length)
Dies gibt 3 zurück.
- Wie bringe ich es dazu, '03' zurückzugeben?
- Warum tut
.length
kehrt undefinded zurück?
Ich habe es versucht, aber es hat nicht funktioniert:
Wenn strlen == 1
dannnum = ('0' + num);
javascript
Mark Fondy
quelle
quelle
.getMinutes()
ist eine Ganzzahl, auf die Sie nicht.length
über eine Ganzzahl zugreifen können . Um dies zu erreichen (wird beim Umgang mit Datumsangaben nicht empfohlen), wird die Zahl in eine Zeichenfolge analysiert und anschließend die Länge überprüft. ZB:date.getMinutes().toString().length
Antworten:
quelle
<10?'0':''
?Huch, diese Antworten sind nicht großartig, selbst der Top-Beitrag wurde angekreuzt. Hier y'go, browserübergreifende und sauberere Int / String-Konvertierung. Außerdem empfehle ich, keinen Variablennamen 'Datum' mit Code zu verwenden,
date = Date(...)
bei dem Sie sich stark auf die Groß- und Kleinschreibung der Sprache verlassen (dies funktioniert, ist jedoch riskant, wenn Sie mit Server- / Browsercode in verschiedenen Sprachen mit unterschiedlichen Regeln arbeiten). . Nehmen wir also das Javascript-Datum in einer Variablen ancurrent_date
:Die Technik besteht darin, die 2 Zeichen ganz rechts
(slice(-2))
von "0" vor den Zeichenfolgenwert von zu setzengetMinutes()
. So:und
quelle
Eine andere kurze Möglichkeit besteht darin, die Minuten mit einer führenden Null zu füllen, indem Sie Folgendes verwenden:
Bedeutung: Machen Sie die Zeichenfolge zwei Zeichen lang. Wenn ein Zeichen fehlt, setzen Sie
0
an dieser Position.Siehe Dokumente unter str.padStart (targetLength, padString)
quelle
Elegante ES6-Funktion zum Formatieren eines Datums in
hh:mm:ss
:quelle
Ich möchte eine sauberere Lösung für das Problem anbieten, wenn ich darf. Die akzeptierte Antwort ist sehr gut. Aber ich hätte es so gemacht.
Nun, wenn Sie dies verwenden möchten.
quelle
Ich schlage vor:
Es ist ein Funktionsaufruf weniger. Es ist immer gut, über Leistung nachzudenken. Es ist auch kurz;
quelle
Sie sollten überprüfen, ob es weniger als 10 ist ... und nicht nach der Länge suchen, da dies eine Zahl und keine Zeichenfolge ist
quelle
Andere Option:
quelle
substr
. w3schools.com/jsref/jsref_substr.aspWeitere Informationen zur Verwendung der ECMAScript Internationalization API :
quelle
.length
ist undefiniert, weilgetMinutes
eine Zahl zurückgegeben wird, keine Zeichenfolge. Zahlen haben keinelength
Eigenschaft. Du könntest es tunvar m = "" + date.getMinutes();
um es einen String zu machen, dann die Länge überprüfen (Sie würden für überprüfen möchten
length === 1
, nicht 0).quelle
Zahlen haben keine Länge, aber Sie können die Zahl einfach in eine Zeichenfolge konvertieren, die Länge überprüfen und bei Bedarf die 0 voranstellen:
quelle
Ich sehe hier keine ES6-Antworten, daher werde ich eine mit StandardJS-Formatierung hinzufügen
quelle
Ich gehe davon aus, dass Sie den Wert als Zeichenfolge benötigen würden. Sie können den folgenden Code verwenden. Es wird immer zurückgegeben, und Sie erhalten die zweistelligen Minuten als Zeichenfolge.
Hoffe das hilft.
quelle
Normalerweise benutze ich diesen Code:
Es ist der von @ogur akzeptierten Antwort ziemlich ähnlich, verkettet jedoch keine leere Zeichenfolge, falls 0 nicht benötigt wird. Ich bin mir nicht sicher, ob es besser ist. Nur ein anderer Weg, es zu tun!
quelle
Sie können Moment js verwenden:
Beispiel:
moment('2019-10-29T21:08').format('mm') ==> 08
hoffe es hilft jemandem
quelle
Neu bei JS, also war dies sehr hilfreich. Die meisten Leute haben sich dieses Problem auch neu angesehen. So habe ich es in der Div mit dem Namen "class =" min "gezeigt.
hoffe es hilft jemandem
quelle
Wie wäre es damit? Für mich geht das! :) :)
quelle
Eine weitere Option, um zweistellige Minuten oder Stunden zu erhalten.
quelle
Verwenden Sie für zweistellige Minuten:
new Date().toLocaleFormat("%M")
quelle
Wenn Sie AngularJS in Ihrem Projekt verwenden, fügen Sie einfach $ filter ein und verwenden Sie es wie folgt:
Sie können die Ausgabe auch in der Vorlage formatieren. Weitere Informationen zu Filtern finden Sie hier .
quelle