2017-05-07 4 views
0

Ich habe zahlreiche Erklärungen versucht, warum dies so am Tag (mit Jahr und Tag Index erstellt wurden nicht sein 0-basiert). Keine dieser Erklärungen ergab wirklich einen Sinn.Warum ist das Javascript Datum Monat Index 0-basierte

Was ist noch überraschender für mich: Auch in der neuesten ECMAScript 2018 Entwurf existiert dieses Problem noch. see dates in ECMAScript 2018

Javascript dies nur genommen von Java vor langer Zeit haben könnte, aber ich sehe nicht, warum es nicht, es wäre denn denn es ist ein richtiger Grund ist tatsächlich geändert wird.

Dank & Grüßen, Marcel

+3

Frage: Haben Sie das neue Jahrtausend am 1. Januar 2000 oder am 1. Januar 2001 gefeiert? – paulsm4

+0

'Warum wird es nicht geändert, es sei denn, es gibt einen richtigen Grund dafür. 'Alter nimmt nur an, diese" kleine "Details zu ändern ist wie die Datei in einem Editor öffnen, die Zeile suchen, Rücktaste, Rücktaste, speichern, fertig. Not easy bud – Dummy

+0

Paraphrasiert vom Duplikat: _TL; DR: Weil Monate und Wochentage Namen und Tage des Monats nicht haben._ – mplungjan

Antwort

2

warum ist die Javascript-Datum Monat Index 0-basierte

Es ist nicht überraschend. Der Wochentag ist ebenfalls 0-basiert. In beiden Fällen ist es üblich, symbolische Versionen von ihnen in Arrays nachzuschlagen (z. B. ["January", "February", ...], ["Sunday", "Monday", ...]). Arrays sind 0-basiert. JavaScript ist bei weitem nicht die einzige Sprache/Laufzeit, die 0-basierte Werte dafür verwendet.

Was ist noch überraschender für mich: auch in der neuesten ECMAScript 2018 Entwurf existiert dieses Problem noch.

Es wäre viel mehr überraschend, wenn sie diese 22 Jahre nach der Tatsache geändert, Millionen von Skripten Sprengung, esp. wie es vollkommen vernünftig ist, wie es ist. Sie könnten hinzufügen einen neuen Accessor, der die +1 für Sie tut, aber ... ja, würde ich nicht den Atem anhalten. :-)

Der einzige Grund für 1-basierte Versionen von diesen ist die Formatierung. Die Formatierung wird von JavaScript überhaupt nicht gehandhabt. Dort ist einige Formatierung in ECMA-402: ECMAScript® 2016 Internationalization API Specification, in Form von DateTimeFormat.

+0

Da die Vorfahren Java und C davor sind und ASM davor, sind die 22 Jahre nicht genug;) – mplungjan

+0

@mplungjan: :-) –

Verwandte Themen