Hier ist, was ich tun muss:Andere Optionen als mit Date.parse()
ich ein ISO 8601-Format haben datestring dateString = "2016-09-30T04:00:00.000+0000"
, die ich brauche, um zu analysieren und ein lesbares Datum „September 30, 2016
“
zu produzieren Hier ist mein Formatierer sap.ui.core.format.DateFormat
, der das für mich tut.
return dateFormatter.format(new Date(dateString));
Das Problem ist, nach MDN,
Es wird empfohlen, nicht Date.parse als bis ES5 zu verwenden, das Parsen von Strings war völlig abhängig von der Implementierung. Es gibt immer noch viele Unterschiede in der Art und Weise, wie verschiedene Hosts Datumstrings analysieren, daher sollte das Datum Strings manuell geparst werden (eine Bibliothek kann helfen, wenn viele verschiedene Formate berücksichtigt werden sollen).
- Direktanruf:
Date.parse(dateString)
- impliziter Aufruf:
new Date(dateString)
So Date.parse()
heißt sowieso mit meinem Formatierer.
Gibt es bessere Verfahren zum manuellen Parsen wie von MDN empfohlen? Gibt es einen SAPUI5-Weg, um dies zu erreichen?
ES5, ich denke, es gibt sehr wenige Leute auf ES3, und wenn es auf ES3 gäbe, dann würde ich bezweifeln, dass SAPUI5 funktionieren würde :), also würde ich sagen, dass es gut ist, Parse zu verwenden. Wenn nicht, gibt es auch moment.js, die Sie verwenden könnten. – Keith
"Date.parse" wird * von ES5 * unterstützt, aber die Art und Weise, wie es in Engines implementiert wird, ist immer noch nicht konsistent, weshalb Sie die Datumsanalyse selbst durchführen sollten. – adeneo
@adeneo, dieses Datum sieht wie ein perfekt geformtes ISO-Datum aus, wenn Sie irgendwelche Browser kennen, die das nicht decodieren können, würde mich interessieren. – Keith