// der php hacker

// archiv

(Not) The 2010 Bug

Geschrieben am 05. Jan 2010 von Cem Derin

Da ich jetzt zum geschätzten 20. mal per eMail darauf aufmerksam gemacht wurde und es mir auch eben in einem Forum über den Weg lief, will ich mal klarstellen, dass dieser Code hier keinen (und schon gar nicht einen y2010) Bug darstellt.

var dateObj = new Date();
var curYear = dateObj.getYear();
alert(curYear);

Wer wissen will, was dabei rauskommt, der kann auch mal hier klicken. Wem das nun komisch vorkommt, dem darf man ruhigen Gewissens ein herzhaftes RTFM an den Kopf werfen. Frohes Neues =)

Geschrieben in Javascript, Kurioses 7 Kommentare

#001
05. Jan 2010

Hehehehe… kommt davon, wenn man zuviel im IE “entwickelt” ;-)
Der machts immernoch nach der JS 1.1-Regel (alles über 2000 wird regulär ausgegeben)…
Aber schön zu wissen, dass ich nicht der Einzige bin, der dieses Problem x-Fach erklären darf ^^


#002
05. Jan 2010
Rudolf

Leider finde ich per Google nichts hierzu.
Könntest du es bitte einmal erklären?


#003
05. Jan 2010
Cem Derin

Was verstehst du nicht, dann erkläre ich es dir gerne.


#004
05. Jan 2010
Sven Rautenberg

Siehe auch http://de.selfhtml.org/javascript/objekte/date.htm#get_year

Blöd, wenn die Standardisierer von Javascript sich nicht entscheiden können. getYear() sollte man also meiden, wie die Pest.


#005
05. Jan 2010
Schnuffel

getYear()

Liefert die seit 1900 vergangenen Jahre eines Datumsobjektes als Zahl zurück, beispielsweise 91, wenn im Datumsobjekt der 02.10.1991, 23:59:00 Uhr, gespeichert ist.

http://de.selfhtml.org/javascript/objekte/date.htm#get_year


#006
05. Jan 2010
Sven Rautenberg

Schnuffel: Alles lesen, das Drama steht unter “Beachten Sie”:

“In den verschiedenen JavaScript-Spezifikationen wurde diese Methode unterschiedlich definiert. Dementsprechend unterscheidet sich das Verhalten der Browser. Ursprünglich galt in JavaScript Version 1.0 die Regel, dass von der Jahreszahl nach christlicher Zeitrechnung einfach 1900 abgezogen werden. Für das Jahr 1995 sollte getYear() demnach 95 wiedergeben, für das Jahr 2001 die Zahl 101. In JavaScript Version 1.1 wurde hingegen definiert, dass Jahreszahlen ab dem Jahr 2000 immer vierstellig zurückgegeben werden, für Jahre davor gilt weiterhin die alte Regel. Dieser Definition folgt der Internet Explorer bis heute. Ab JavaScript 1.3 gilt schließlich wieder alleinig die ursprüngliche Regelung von JavaScript 1.0, nach der von der vierstelligen Zahl 1900 abgezogen werden. Die meisten aktuellen Browser außer dem Internet Explorer folgen dieser Regelung. getYear() ist aus diesen Gründen heutzutage obsolet. Verwenden Sie möglichst die eindeutige Methode getFullYear().”


#007
05. Jan 2010
Schnuffel

Ich hab das schon verstanden. Das diente zur Erklärung an Rudolf

// kommentieren

// senden
theme von mir, software von wordpress, grid von 960 grid system. funktioniert in allen browsern, aber der safari bekommt das mit der schrift am schönsten hin.