2016-08-12 2 views
3

Ich Moment bin mit js Datum variable FormatMoment js von einem Format zu konvertieren Datum zu anderen

moment("23MAY68", 'DDMMMYY').format('YYYY-MM-DD'); 
moment("23MAY99", 'DDMMMYY').format('YYYY-MM-DD'); 

Bis zum Jahr 68 konvertieren, ist die Ausgabe 2068. Ab dem Jahr 69, ist die Ausgabe 1969 nicht 2069. Gibt es eine Syntax oder einen Parameter in moment.js, wo ich es erwähnen kann, um 2069 und nicht 1969 zu verwenden?

http://plnkr.co/edit/ljXuskMsUAuJnpkqMPUn?p=preview

+1

Beachten Sie, dass zweistellige verwendet für das Jahr im Plundercode, während Sie hier vierstellig verwenden. – VincenzoC

+0

Ich habe den Jahrwert jetzt auf 2 Stellen aktualisiert – firstpostcommenter

Antwort

4

Von Moment docs analysieren:

standardmäßig zweistellige Jahre über 68 sind davon ausgegangen, in den 1900er Jahren und Jahren 68 oder unten angenommen werden in den 2000er Jahren seine . Dies kann durch Ersetzen der moment.parseTwoDigitYear Methode geändert werden.

Also, wenn Sie moment.parseTwoDigitYear in Sie Code ersetzen, werden Sie 2069 anstelle von 1969

Hier ist ein funktionierendes Beispiel:

moment.parseTwoDigitYear = function(year){ 
 
    return parseInt(year, 10) + 2000; 
 
}; 
 

 
var s1 = moment("23MAY68", 'DDMMMYY').format('YYYY-MM-DD'); 
 
var s2 = moment("23MAY99", 'DDMMMYY').format('YYYY-MM-DD'); 
 

 
console.log(s1, s2);
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>

+0

Da ein vierstelliges Jahr in der Eingabe ist, ist dies nicht notwendig. Aber es ist ein guter Ansatz für, wenn das Jahr nur zwei Ziffern in der Eingabe ist. –

+0

Ich schlug diese Lösung vor, weil das OP zweistelliges Jahr im verbundenen Plünderer verwendete – VincenzoC

+0

Das macht dann Sinn. Danke für die Klarstellung –

1

Ja, es gibt. Nur mit dem richtigen Format

moment("23MAY2099", 'DDMMMYYYY').format('YYYY-MM-DD'); 
Verwandte Themen