Kilian: Funktion get.year

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

  1. 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

    1. 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

    2. 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? ;)

      1. 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