Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Galileo Computing
ISBN 3-89842-859-1
gp Kapitel 5 Datum
  gp 5.1 Tagesdatum
  gp 5.2 Y2K
  gp 5.3 Mit Daten rechnen
  gp 5.4 Lokales Datumsformat


Galileo Computing

5.2 Y2K  toptop

Auch JavaScript war von dem legendären Jahr-2000-(Y2K-)Problem betroffen, allerdings ist das hier nicht so schlimm wie in weiten Teilen der Wirtschaft. Probleme bereiten hier (natürlich) wieder Browser von anno Tobak. Die Krux liegt in der Methode getYear(). Je nach Browser werden manche Jahre anders interpretiert. Die folgende Tabelle zeigt auf, welche Rückgabewerte die verschiedenen JavaScript-Versionen bei den jeweiligen Zeiträumen vorschreiben. Dabei bedeutet »volle Jahreszahl« eine vierstellige Jahreszahl (außer natürlich bei Jahreszahlen vor 1000); »kurze Jahreszahl« bedeutet eine zweistellige Jahreszahl im 20. Jahrhundert, also etwa »99« statt »1999«.


Tabelle 5.2     Die Behandlung von Jahreszahlen in den verschiedenen JavaScript-Versionen

Zeitraum JS 1.0 JS 1.1/1.2 JS 1.3 und höher
<1970 Nicht unterstützt Volle Jahreszahl Jahreszahl minus 1900 (1800 wird durch –100 dargestellt)
1970...1999 Jahreszahl minus 1900 Kurze Jahreszahl Jahreszahl minus 1900
³2000 Jahreszahl minus 1900 Volle Jahreszahl Jahreszahl minus 1900

In der Praxis ist das nicht viel wert, weil beispielsweise der Internet Explorer 5/6 sich nicht an die Vorgaben hält und im Jahr 2002 als Jahreszahl auch tatsächlich 2002 zurückgibt (und nicht etwa 102). Die vorherige Tabelle wirkt zudem etwas einschüchternd. Ist es etwa nötig, mühsam eine Fallunterscheidung nach JavaScript-Versionen durchzuführen?

In der Praxis gibt es glücklicherweise einen relativ einfachen Ausweg. Üblicherweise liegen alle verwendeten Daten im Bereich von 1970 bis ins 21. Jahrhundert hinein. Eine Jahreszahl kleiner als 200 ist also um 1900 zu niedrig; andere Jahreszahlen sind – nehmen wir einfach einmal an – korrekt. Man kann also eine Funktion schreiben, die das Y2K-sichere Jahr zurückgibt:

function getYearY2K(d) {
   var y = d.getYear();
   if (y < 200) {
      return y + 1900;
   } else {
      return y;
   }
}

Ab JavaScript 1.3 (also in allen aktuellen Browsern) gibt es eine Methode getFullYear(), die grundsätzlich kein verkürztes Datum zurückgibt, sondern stets die volle Jahreszahl. Alle Browser, die heute eine messbare Verbreitung haben, sollten diese Methode unterstützen. Eine Alternative besteht darin, ein eigenes Datumsobjekt zu schreiben; das nötige Rüstwerkzeug bekommen Sie in Kapitel 13.

 <<   zurück
  
  Zum Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de