2016-06-02 19 views
1

Dieser Code funktioniert gut auf Chrom, funktioniert aber nicht auf Firefox oder IE. Beachten Sie, dass es funktioniert, wenn ich die entfernen „+00: 00“moment.js Problem auf Firefox

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.0/moment.min.js"></script> 
<script> 
var now = moment("Sun Jun 01 2016 05:00:00+00:00").format('ddd MMM DD YYYY HH:mm:ssZ'); 
alert(now); 
</script> 

Antwort

1

Wenn Sie analysieren nicht das Format der Zeichenfolge übergeben zu, du bist auf moment.js verlassen das Format zu erraten und wenn es nicht etwas erhalten kann, das wie ein gültiges Datum aussieht (es kann immer noch falsch sein), wird es auf die Analyse durch den eingebauten Date-Konstruktor zurückgreifen, was dringend empfohlen wird. Die Format Methode ist für das Ausgabeformat, nicht das Parse-Format.

Um das Format der Zeichenfolge an den moment.js Parser, enthalten sie als zweites Argument übergeben:

moment("Sun Jun 01 2016 05:00:00+00:00",'ddd MMM DD YYYY HH:mm:ssZ').format(/*output format*/) 

Beachten Sie auch, dass dort, wo es fällt zurück auf Einbau-Parsing, wird die folgende Warnung angezeigt in der Konsole:

Warnung bei Verfall: Moment Konstruktion fällt zurück auf js Datum. Dies wird abgeraten und wird in der kommenden Hauptversion entfernt werden. Weitere Informationen finden Sie unter https://github.com/moment/moment/issues/1407.

+0

Danke - das funktioniert. Ich nehme an, dass das Format für die Eingabe ist und nicht ausgegeben – alek

+0

Ich denke, es ist eine dieser API-Entscheidungen: sollte es * parse * und * format * Methoden, oder eine und nur eine Methode für die andere haben? – RobG