Java 1.2 hat Jahr 2000 Problem
Klaus Grube
- java
Hallo,
schaut euch mal das Script an und probiert es mal aus.
mit dem Befehl getYear bekomme ich auf jeden Fall folgende Ausgabe:
Jetzt ist es: 13:53 Uhr.
Datum: 2.1.100
Oder habe ich da etwas Falsch gemacht!? Ich glaube nicht.
mfg Klaus Grube
<html>
<script language="JavaScript">
<!-- vor alten Browsern verstecken
heute = new Date();
document.write("Jetzt ist es: ", heute.getHours(), ":",
heute.getMinutes(), " Uhr.<br>");
document.write("Datum: ", heute.getDate(), ".",
heute.getMonth()+1, ".", heute.getYear());
// -->
</script>
</html>
Hallo Klaus!
Jetzt ist es: 13:53 Uhr.
Datum: 2.1.100
Komisch, ich erhalte die falsche Zeit, aber das richtige Datum *wunder*:
Jetzt ist es: 13:3 Uhr.
Datum: 2.1.2000
Aber ein Y2K-Problem von "Java" koennen wir wohl ausschliessen *g*
-joerg
Hallo Klaus!
Jetzt ist es: 13:53 Uhr.
Datum: 2.1.100Komisch, ich erhalte die falsche Zeit, aber das richtige Datum *wunder*:
Kann ich mir nicht erklären
Jetzt ist es: 13:3 Uhr.
Datum: 2.1.2000Aber ein Y2K-Problem von "Java" koennen wir wohl ausschliessen *g*
Glaub ich nicht, hast du nicht ein anderes Java Programm
-joerg
»»
Habe mal das Script umgeschrieben:
im getYear habe ich die Adition von 1900 eingefügt und es arbeitet unter Java 1.2 einwandfrei auch die Uhrzeit wird richtig wiedergegeben.
Jetzt ist es: 14:16 Uhr.
Datum: 2.1.2000
Ich wollte mit diesem Script lediglich darauf aufmerksam machen ob es im Jahre "anno domini" 2000 richtig läuft
Klaus Grube
<html>
<script language="JavaScript">
<!-- vor alten Browsern verstecken
heute = new Date();
document.write("Jetzt ist es: ", heute.getHours(), ":",
heute.getMinutes(), " Uhr.<br>");
document.write("Datum: ", heute.getDate(), ".",
heute.getMonth()+1, ".", heute.getYear()+ 1900);
// -->
</script>
</html>
Hallo nochmal!
Jetzt ist es: 14:3 Uhr.
Datum: 2.1.2000
»»> Kann ich mir nicht erklären
Ich schon, es war halt grade 14:03! Hab mich nur verschrieben, es ging ja auch nur um die einstellige Minutenanzeige, die aber eigentlich auch kein Wunder ist...
»» Glaub ich nicht, hast du nicht ein anderes Java Programm
Aehhm, ich wollte damit nur daraufhinweisen, dass es sich um JavaSript und nicht um Java handelt, aber das ist ja jetzt auch egal, diese Klugscheisserei tut mir auch schon wieder leid, denn jetzt stehe ich selber vor einem Y2K-Problem, dass ich allein nicht loesen kann. siehe http://www.teamone.de/selfaktuell/self_forum/48974.html
Bis dann
-joerg
Hallo nochmal!
Ich schon, es war halt grade 14:03! Hab mich nur verschrieben, es ging ja auch nur um die »»einstellige Minutenanzeige, die aber eigentlich auch kein Wunder ist...
Siehst du...
Aehhm, ich wollte damit nur daraufhinweisen, dass es sich um JavaSript und nicht um Java
Zum ausführen von Javascripts benötigt man immer ein "Java" den sogenannten Interpreter.
Ohne diesen könntest du nie deine Scripte zum laufen kriegen.
Nun gibt es aber verschiedene Javainterpreter daher auch meine Angabe unter welcher Vision der Fehler auftritt..
»»handelt, aber das ist ja jetzt auch egal, diese Klugscheisserei tut mir auch schon wieder leid, »»denn jetzt stehe ich selber vor einem Y2K-Problem, dass ich allein nicht loesen kann. siehe
Jörg ich glaube nicht das du Geklugtscheist hast, du warst eben nur ein wenig voreillig.
Ich habe mir dein Script angeschaut unter Netscape 4.6 und den dazugehörigen Javainterpreter funktioniert es einwandfrei. Sieh dir den Auszug aus deinen Script an dort ist wie im meinen Beispiel die Zahl 1900 dazu addiert worden.
function checkDateTime () {
var today = new Date();
var year = today.getYear() + 1900;
var month = today.getMonth()+1;
var date = today.getDate();
var day = today.getDay();
var hour = today.getHours();
var minute = today.getMinutes();
var second = today.getSeconds();
function checkDateTime () {
var today = new Date();
var year = today.getYear() + 1900;
var month = today.getMonth()+1;
var date = today.getDate();
var day = today.getDay();
var hour = today.getHours();
var minute = today.getMinutes();
var second = today.getSeconds();
Der IE zeigt ab 2000 die ursprünglich
nur zweistellige Jahreszahl vierstellig an, NS
hingegen nicht.
getYear ist in der neuen Impementation überholt und am besten durch getFullYear zu ersetzen, um das Problem zu vermeiden und bei allen Browsern die gleiche Anzeige zu erzielen.
getYear+1900 ergibt sonst beim IE das Jahr 3900!
Grüsse
Marcus
Aehhm, ich wollte damit nur daraufhinweisen, dass es sich um JavaSript und nicht um Java
Zum ausführen von Javascripts benötigt man immer ein "Java" den sogenannten Interpreter.
Ohne diesen könntest du nie deine Scripte zum laufen kriegen.
Nun gibt es aber verschiedene Javainterpreter daher auch meine Angabe unter welcher Vision der Fehler auftritt..
Gnade! Java ist eine richtige Programmiersprache, und JavaScript ist eine, hm, äh - jedenfalls bestimmt nicht dasselbe!
Hallo Michael,
Gnade! Java ist eine richtige Programmiersprache, und JavaScript ist eine, hm, äh - jedenfalls bestimmt nicht dasselbe!
Als absoluter Javascriptfan kann ich nur sagen, es kommt darauf an, was man mit der Sprache erreichen
möchte. Und richtig angewendet kann man in JS sehr sehr
viel erreichen.
Viele Grüße
Antje
Als absoluter Javascriptfan kann ich nur sagen,
es kommt darauf an, was man mit der Sprache
erreichen möchte. Und richtig angewendet kann
man in JS sehr sehr viel erreichen.
Klar. Ich nutze es ja auch, wenn es sich anbietet (http://www.homepages.de/schroepl@dialup.nacamar.de/pbm/amtsblat/triumph/formular.htm.)
Aber wenn ich (Netscape 3.0) schon von PA[FV]s Fan-Seiten mit JavaScript-Fehlern förmlich totgeschmissen werde ... das verdirbt einem halt irgendwann doch den Spaß.
Außerdem 'gibt' es ja gar kein JavaScript, sondern bloß lauter verschiedene inkompatible Dialekte (einen pro Browser-Version).
Da lobe ich mir doch mein portables, serverseitiges Perl ... ;-)))
(<javascript:self.close()> ;-)
Grade lach ich noch drueber, da stelle ich fest, dass bei mir auch ein Fehler auftritt:
Meine Welt-Uhr (Freeware-Sript) hat sich ins Jahr 3900 vorkatapultiert. (wow!)
http://www.uni-jena.de/~j6scjr/world.htm
Ich vermute, das die dem Programm zugrunde liegende mathematische Formel fuer 2000 nicht mehr passt, aber das ist nur ein Tip ins Blaue...
Koennte sich das vielleicht mal jemand bitte anschauen, ich kann doch kein JavaScript (noch nicht ;-)
Danke
-joerg
P.S.: Der Source-Code steht ein bisschen weiter unten, das ist KEIN Versuch, ihn zu verbergen, sondern nur ein kleiner Spass :-)
Hallo Jörg,
Meine Welt-Uhr (Freeware-Sript) hat sich ins Jahr 3900 vorkatapultiert. (wow!)
http://www.uni-jena.de/~j6scjr/world.htmIch vermute, das die dem Programm zugrunde liegende mathematische Formel fuer 2000 nicht mehr passt, aber das ist nur ein Tip ins Blaue...
dein Problem existiert nur im Internet Explorer
ändere die Zeile var year = today.getYear() + 1900;
in der Funktion checkDateTime ()
so ab:
if (document.all) year = today.getYear(); else
year = today.getYear() + 1900;
Da funktioniert es zumindest im Internet Explorer ab der Version 4. Willst du auch den IE 3 erfassen, müßte du die Browserabfrage noch verändern.
Viele Grüße
Antje
Hallo Antje!
Vielen Dank, jetzt befinde ich mich wieder in der Gegenwart! 3900 war mir viel zu stressig ;-)
<vollmundig>
Und ich verspreche hiermit, im neuen Jahr endlich JavaScript zu lernen und nichts mehr upzuloaden, was ich nicht vorher mit beiden Browsern getestet habe. Und keine Features mehr einzubauen von denen ich keine Ahnung habe ... obwohl ... nee, das kann ich nicht versprechen... </vollmundig>
viele Gruesse
-joerg