von Thomas Salvador.
Tatsächlich ist die Datumsfunktion in einigen Browsern fehlerhaft, in der Form, dass sie für das Jahr statt 2000 den Wert 100 liefert, 101 statt 2001, usw.: Wer z.B. die Einführung in Datum und Zeit gelesen hat weiß, dass Date.getYear() für Jahre vor 2000 zweistellige Werte lieferte (z.B. 99 für 1999) und ab 2000 vierstellige liefern sollte (z.B. 2000 für 2000). Etliche Browser halten sich auch daran, doch hat der Fehlerteufel bei anderen kräftig zugeschlagen.
Wer meine anderen Scripte bzw. Artikel betrachtet hat, hat gesehen, dass ich eine Funktion t4() verwendete, um stets eine vierstellige Jahreszahl zu liefern.
function t4(y) {
return (y < 100 ? y+1900 : y);
}
Zu Werten kleiner 100 (die somit zweistellig sind) wurde 1900 addiert, alles andere unverändert zurückgegeben.
Nach Angaben im Newsletter 'The Tribune' sind folgende Browser fehlerhaft:
Mit einer kleinen Änderung an der obigen Funktion t4(), kann man aus ihr einen Fix für den Y2K-Bug der betroffenen Browser machen:
function t4(y) { //y2k-BUGFIX fuer Browser
return (y < 1000 ? y+1900 : y);
}
Ist der Browser nicht fehlerhaft, so ist y >=2000 und wird unverändert zurückgegeben. Ist er fehlerhaft, so ist y 100,101,usw. also kleiner 1000. Durch die Additon wird daraus y+1900=2000, 2001, usw., also der korrekte Wert.
Bitte updaten Sie folgende Scripte bzw. Artikel: