Stefan Muenz: Funktion get.year

Beitrag lesen

Hallo Kilian

Kann es sein, daß die Funktion getyear() bei
unterschiedlichen Browser‚versionen etwas anderes
zurückliefert, zum BEispiel habe ich den Verdacht
das beim Navigator 4.6 etwas anderes zurückkommt
(wahrscheinlich nur eine zweistellige JAhreszahl) als
beim IE 5. Hat jemand damit schon Erfahrung ?

Ja. Beim IE kommt heraus, was man erwarten darf: 2000. Beim Netscape kommt heraus, was man bei einem Browser erwarten darf, der ab irgendeiner vermutlich unbekannten Version neben der Funktion getYear() auch noch eine Funktion namens getFullYear() unterstuetzt. Bei getYear() passiert das Gleiche wie bei Perl - dort wird ab 2000 der Wert 100 zurueckgegeben, weil intern ab 1900 zu zaehlen begonnen wird. Wir hatten das Thema hier ja schon einmal in den letzten Tagen - man kann dieses Verhalten zwar als logisch interpretieren, aber logisch nur im Sinne einer menschenunfreundlichen Maschinenwelt, nicht im Sinne einer modernen "Hochsprache".

So, und weil ich derzeit so viele haemische Mails kriege, weil auch Beispiele in SELFHTML betroffen sind, hier auch gleich dazu die General-Loesung, damit ich alle diese Mail-Schreiber auf diesen Thread hier schicken kann ;-)

function myFullYear(dateObject)
{
var y = dateObject.getYear();
if (y<1000) y+=1900;
return y;
}

aufzurufen etwa so:
Zeit = new Date();
Jahr = myFullYear(Zeit);

Und wer's jetzt noch wissenschaftlich genau haben will mit Netscape und Y2K, der geht auf http://developer.netscape.com/viewsource/wyner_2k/wyner_2k.html

viele Gruesse
  Stefan Muenz