Problem mit JS-Skript-Funktion getYear()

  • Entschuldigung.
    Ich war wohl etwas gereizt, da ich keine Antwort auf meine Frage gefunden habe.
    Meine Frage hatte ich natürlich dann im ersten Beitrag auch vergessen.
    Ich hoffe Ihr nehmt meine Entschuldigung an.

    Aber nun fange ich noch mal neu an.

    Hallo zusammen, mein Name ist Norbert
    Ich benutze seit 1995 den IE und höre immer wieder das der Firefox besser sei.
    Habe mir nun vor einigen Wochen den Firefox installiert und hatte bzw. habe
    Probleme die ich teilweise selbst beheben konnte.

    Nun habe ich noch ein Problem mit diesem Script

    <script language="JavaScript" type="text/javascript">
    copyJahr=2006 //erstes Jahr
    copyText="Copyright &copy;" // Text vor der Jahreszahl
    copyName=",Text Text Text" // Text nach der Jahreszahl

    //ab hier nichts mehr aendern
    copyJahr2=new Date();
    update=copyJahr2.getYear();
    if (update>copyJahr){
    document.write(copyText+" "+copyJahr + " - "+ update+" "+copyName);
    }
    else
    {
    document.write(copyText+" "+copyJahr+" "+copyName);
    }
    </script>

    Es wird alles gezeigt, nur die zweite Jahreszahl vom aktuellen Jahr nicht.
    Weiß hier jemand Rat?

    Herzlichen Dank für Eure Hilfe
    Gruß Norbert

    _______________

    Edit Road-Runner: Threadtitel geändert (der ursprüngliche Titel lautete Entschuldigung)

  • Der Form halber setze Strichpunkte nach den Deklarationen am Anfang. Die Funktion getYear() ist nicht das was du willst. Schau dir die Dokumentation zu der Funktion vor Verwendung an. Was du willst, ist getFullYear().
    Für das Verwenden der falschen Funktion kann der Fx ja nichts. :wink:
    Darüber hinaus setze am Ende ein document.close();

  • Hallo boardraider.

    Herzlichen Dank für Deine Hilfe.
    Das getFullYear war schon ausreichend für die Anzeige.
    Das getYear ging nun über Jahre im IE, das der Firefox das anders haben möchte
    wäre ich nie drauf gekommen.
    Von JavaScript habe ich absolut keine Ahnung.
    Mit den anderen Begriffen die Du genannt hast kann ich aber nichts anfangen.
    Wo finde ich die Dokumentation zu der Funktion vor Verwendung?

    Noch mal Danke
    Gruß Norbert

  • Zitat von Norbert01

    Ich hoffe Ihr nehmt meine Entschuldigung an.

    Entschuldigung angenommen. Ich kann durchaus verstehen, dass man im ersten Moment (zu) emotional reagiert, wenn etwas nicht so will, wie man möchte. Vergessen wir also Deinen ersten Thread.

    BTW: Ich habe den Titel dieses Threads geändert in Problem mit JS-Skript, da er so für jemanden, der das gleiche Problem hat, einfacher zu finden ist.

  • Zitat

    Das getYear ging nun über Jahre im IE, das der Firefox das anders haben möchte wäre ich nie drauf gekommen.

    Der IE macht manche Dinge eben "anders", aber deswegen nicht richtig. Es ist nicht nur der Fx, der hier einen Unterschied macht. Auch andere Browser verhalten sich hier wie der Fx. Eigentlich ist der IE die Ausnahme.

    Hilfreich ist oft ein Blick zum W3C:
    http://www.w3schools.com/jsref/jsref_obj_date.asp
    Auch Google liefert zu JS einige Informationen. Ansonsten hilft auch ein Blick in den Standard.

  • Noch einmal eine Referenz Richtung SelfHtml:
    http://de.selfhtml.org/javascript/objekte/date.htm#get_year
    http://de.selfhtml.org/javascript/obj…m#get_full_year

    Zitat

    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 nach oben getFullYear().

    Mal am Rande. Der Erfinder von Javascript arbeitet bei Mozilla an der Javascript-Umsetzung und ist auch für die Weiterentwicklung maßgeblich zuständig. Wenn Javascript in irgendeinem Browser wirklich "richtig" ist, dann im Firefox.

    Was Microsoft im IE eingebaut hat ist auch nicht wirklich Javascript, sondern eher ein Javascript-"Slang"/Dialekt, der zum Teil ganz eigenen Regeln gehorcht. Daher spricht man dort auch von "JScript". Javascript hat im übrigen auch nichts mit Java zu tun. Der Erfinder von Javascript wollte damit sowohl Aufmerksamkeit erregen, da zu der Zeit Java sehr gehypte und beliebt wurde, eine Verbildlichung der Vorteile von Javascript aufzeigen. Javascript hat konzeptionelle Anleihen bei Java, aber ist im Grunde eine völlig eigene unabhängige und auch völlig zu Java inkompatible Sprache.

    Javascript wird aktiv bei Mozilla weiterentwickelt und dann unter dem Namen ECMAScript als Standard eingereicht und verabschiedet. Um maximale Kompatibilität zu gewährleisten, sollten daher alle Browser ECMAScript-konform sein. Und wie das bei dem Dinosaurier IE halt der Fall ist: er ist der der am weitesten von diesem optimalen Zustand entfernt ist. Also niemals beim IE über irgendwas wundern. Javascript ist nur ein Beispiel von vielen. Wenn es der IE "richtig" anzeigt und ein anderer Browser nicht, dann kann man in den meisten Fällen davon ausgehen, dass der IE es eigentlich doch nicht richtig anzeigt. Gibt zwar auch Ausnahmen von der Regel, aber die kann man an einer Hand abzählen. Andersrum würden die Hände einer Schulklasse nicht reichen. Das ist auch kein Fanboy-Getue. Das ist ein Fakt. Und in meinem Fall auch einer den ich aus persönlicher Erfahrung bestätigen kann. Ich mach das jetzt schon seit über 10 Jahren. ; )