Funktion get.year
Kilian
- javascript
0 Stefan Muenz0 Michael Vogel0 WS64
Hallo
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 ?
Kilian
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
Moin!
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 ;-)
...
Schade... ;-)
Ich wollte gerade eine Mail schreiben. Bei http://www.it-business.net/daily testen sie anscheinend nur gegen den IE, nicht gegen Netscape. Da hab' ich bei Dir nachgesehen, um eine Lösung zu erhalten und bin auf den Fehler gestoßen.
Ich war so erfreut, einmal selber einen Fehler zu bemerken... ;-))))
BTW: Korrigierst Du es irgendwann in der Doku? Wäre sicherlich sinnvoll zur Postfach-Entlastung, oder?
Tschau!
Michael
function myFullYear(dateObject)
{
»» var y = dateObject.getYear();
»» if (y<1000) y+=1900;
»» return y;
}
aufzurufen etwa so:
Zeit = new Date();
Jahr = myFullYear(Zeit);
Wie, und im Jahr 2900 dürfen wir dann wieder alle unsere Scripte ändern? ;)
Hallo Wolfgang,
Wie, und im Jahr 2900 dürfen wir dann wieder alle unsere Scripte ändern? ;)
Klar! Hin und wieder sollte man seine Programmierkenntnisse ohnehin auffrischen. Und ich denke, dieser Rhythmus ist so grosszuegig, dass man zwischenzeitlich durchaus auch mal zu anderen Dingen kommt ... ;-)
Der Code zu jener Funktion stammt uebrigens von Netscape von jener Seite, die ich in dem Posting auch verlinkt habe ;-)
viele Gruesse
Stefan Muenz