Lesen Sie den Abschnitt long date formats. Sie würden mit dem Standard lange Datumsformat Objekt ersetzen:
moment.updateLocale('en', {
longDateFormat : {
LT: "h:mm A",
LTS: "h:mm:ss A",
L: "MM/DD", // Remove year
LL: "MMMM Do YYYY",
LLL: "MMMM Do YYYY LT",
LLLL: "dddd, MMMM Do YYYY LT"
}
});
Dann nutzen:
var x = moment().format('L');
Moment analysiert die Zeichenfolge Format für Token suchen geben. Wenn Sie eine benutzerdefinierte Token wie „LTY“ hinzufügen möchten, müssen Sie es auch auf der Liste der lokalen Formatierungen Token hinzufügen müssen:
var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
würde sich ändern (LTY hinzugefügt):
var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTY|LTS|LT|LL?L?L?|l{1,4})/g;
und aktualisieren Sie die Standard lange Datumsformate mit dem neuen Token:
var defaultLongDateFormat = {
LTY : 'MM/DD HH:mm', // format for new token
LTS : 'h:mm:ss A',
LT : 'h:mm A',
L : 'MM/DD/YYYY',
LL : 'MMMM D, YYYY',
LLL : 'MMMM D, YYYY h:mm A',
LLLL : 'dddd, MMMM D, YYYY h:mm A'
};
dann, wenn Sie ein anderes Format gesucht:
moment.updateLocale('en', {
longDateFormat : {
LTY: 'MM/DD HH:mm', // new format for token here
LT: "h:mm A",
LTS: "h:mm:ss A",
L: "MM/DD/YYYY",
LL: "MMMM Do YYYY",
LLL: "MMMM Do YYYY LT",
LLLL: "dddd, MMMM Do YYYY LT"
}
});
und schließlich:
var x = moment().format('LTY');
aber man müsste prüfen, was das für einen anderen Code tun wird. Außerdem müssten Sie bei jeder Aktualisierung der Quelle moment.js dieselben Änderungen vornehmen, einen CDN nicht verwenden und Ihr Code wäre nicht mit der Standardbibliothek moment.js auf andere Sites portierbar.
So bleiben Sie auf die updateLocale Art der Dinge zu tun. Oder einfach tun:
var LTY = 'MM/DD HH:mm';
var d = new moment().format(LTY);
console.log(d)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.js"></script>
und du bist fertig.
Beachten Sie, dass die Verwendung von "locale" hier eine falsche Bezeichnung ist. Formatierungseinstellungen haben nichts damit zu tun, wo sich der Benutzer befindet (d. H. Sein Gebietsschema), und "en" ist eine Sprache, die in einer großen Anzahl von Gebietsschemas gesprochen wird, die sehr unterschiedliche Präferenzen für die Formatierung eines Datums haben.
wo setzen Sie die localFormattingTokens? – Ben
@ Ben-Sie müssen den Quellcode bearbeiten (localFormattingTokens sind in Zeile 559 in Version 2.14.1). Ich habe oben gezeigt, wie es geht, aber empfehle es aus den angegebenen Gründen nicht. – RobG