falsches Datum in Javascript ?
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
aktueller monat
aktuelles datum
ausgabe
bevorzugen
code
date
datum
ding
externe atom
falsche zahlen
monat
passender stelle
richtige uhrzeit
server
starten
tag
uhr
url
vergangenheit
wochentag
-
Hallo
ich habe ein kleines JS um tag/aktuelles datum">aktuelles Datum und Uhrzeit anzuzeigen,
leider bekomme ich im Datum bei Tag und bei Monat immer falsche Zahlen
es wird immer aktueller Tag minus 1 und aktueller Monat minus 1 angezeigt ??
also heute ist: 04.07.2012 aber in Ausgabe steht : 03.06.2012
hier der Code:
<html> <head> <title>Datum und Uhr</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> <!-- function start_uhr() { show_uhr(); window.setInterval("show_uhr()", 1000); } function show_uhr() { var now = new Date(); var year = now.getFullYear(); var month = now.getMonth(); var day = now.getDay(); var Wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); var Monattext = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds(); var thetime = ""; thetime += "Datum: "; thetime += " " + Wochentag[day] + " "; thetime += (day < 10) ? "0" + day + "." : day + "."; thetime += (month < 10) ? "0" + month + "." : month + "."; thetime += " " + Monattext[month] + " "; thetime += year + " "; thetime += "Zeit: "; thetime += (hours < 10) ? "0" + hours + ":" : hours + ":"; thetime += (minutes < 10) ? "0" + minutes + ":" : minutes + ":"; thetime += (seconds < 10) ? "0" + seconds : seconds; thetime += " Uhr"; element = document.getElementById("datumausgabe"); element.innerHTML = thetime; } //--> </script> </head> <body onload="start_uhr();"> <span id="datumausgabe"></span> </body> </html>
warum bekomme ich im Datum am 04.07.2012 als Ausgabe: 03.06.2012
also bei Tag und Monat sind die Zahlen jeweil um 1 zu wenig (in der Vergangenheit)
aber der Wochentag und Monattext sind richtig ?!
?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich hab mir den Sourcecode jetzt nicht genau angeschaut, aber wenn das um eins nach hinten verschoben ist, warum machst du nicht an passender Stelle einfach "day + 1" statt nur "day"?
Nachtrag, beispielsweise so:
var thetime = ""; thetime += "Datum: "; thetime += " " + Wochentag[day] + " "; thetime += (day < 9) ? "0" + (day+1) + "." : (day+1) + "."; thetime += (month < 9) ? "0" + (month+1) + "." : (month+1) + "."; thetime += " " + Monattext[month] + " "; thetime += year + " ";
Beitrag zuletzt geändert: 4.7.2012 12:53:43 von nicoa -
Hallo
ja, das ist schon klar, das ich einfach mit +1 bei month und day reparieren kann
var month = (now.getMonth()+1); var day = (now.getDay()+1);
wenn ich das mache, dann stimmt zwar das Datum als Zahl,
aber der Text für Monat und Tag stimmt dann nicht mehr,
also füge ich ein Dummy-Element ein, weil Monat 0 und Tag 0 gibt es ja nicht
var Wochentag = new Array("x", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); var Monattext = new Array("x", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
aber eigentlich ist das so ja auch Quatsch,
denn welchen Text soll sich das script am 24,07. holen,
es gibt ja kein 24tes Element in Wochentag ???
also gibt mir getDay() nicht den Tag als Zahlenwert, sondern den Wochentag
beginnend mit 0 = Sonntag bis 6 = Samstag ???
...oOo .. steht ja auch in der DOKU: getDay() (Wochentag ermitteln)
ist halt auch grad Zufall, dass der 04.07.2012 ein Mittwoch ist und somit 3 als Wochentag ergibt
wie komme ich denn an den aktuellen Tag im Monat (als Zahlenwert, also z.B. 24) ?
bei Monat ist es noch "machbar" mit dem Array Wert (0 = Januar, 1 = Februar, etc)
aber bei Wochentage gehts ja nur bis 7 (bzw. 0 bis 6), ich brauche aber Tag im Monat als Zahl
oder wie sonst hier das Datum und Uhrzeit formatiert ausgeben ?
Danke
-
So, hab jetzt mal nachgeschaut, siehe hier: http://de.selfhtml.org/javascript/objekte/date.htm.
Du kannst das einfach machen per:
var jetzt = new Date(); var Tag = jetzt.getDate();
Beitrag zuletzt geändert: 4.7.2012 12:53:16 von nicoa -
oh ja, Danke
bei getDate() habe ich nicht geschaut, weil ich von PHP gewohnt bin, das date() das "ganze" Datum behandelt, dass man in Javascript mit getDate() den Tag im Monat bekommt, ist die Lösung, Danke !
hier nochmal der verbesserte Code:
<html> <head> <title>Datum und Uhr</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> <!-- function start_uhr() { show_uhr(); window.setInterval("show_uhr()", 1000); } function show_uhr() { var now = new Date(); var year = now.getFullYear(); // Jahreszahl 4-Stellig var month = now.getMonth(); // Array-Wert Monat 0 bis 11 var zmonth = (month+1); // Zahlenwert Monat 1 bis 12 var wday = now.getDay(); // Array-Wert Wochentag 0 bis 6 var day = now.getDate(); // Zahlenwert Tag im Monat 1 bis 31 var Wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); var Monattext = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); var hours = now.getHours(); // Zahlenwert Stunden 0 bis 23 var minutes = now.getMinutes(); // Zahlenwert Minuten 0 bis 59 var seconds = now.getSeconds(); // Zahlenwert Sekunden 0 bis 59 var thetime = ""; thetime += "Datum: "; thetime += "" + Wochentag[wday] + ", "; thetime += (day < 10) ? "0" + day + "." : day + "."; thetime += (zmonth < 10) ? "0" + zmonth + "." : zmonth + "."; thetime += " (" + Monattext[month] + ") "; thetime += year + " "; thetime += "... Zeit: "; thetime += (hours < 10) ? "0" + hours + ":" : hours + ":"; thetime += (minutes < 10) ? "0" + minutes + ":" : minutes + ":"; thetime += (seconds < 10) ? "0" + seconds : seconds; thetime += " Uhr"; element = document.getElementById("datumausgabe"); element.innerHTML = thetime; } //--> </script> <style type="text/css"> <!-- #datumausgabe { font-family: "Courier New", Courier, mono; font-size: 14px; color:#003366; } --> </style> </head> <body onload="start_uhr();"> <span id="datumausgabe"></span> </body> </html>
gibt es noch eine andere Möglichkeit das Ding ohne
zu starten ?<body onload="start_uhr();">
nochwas:
per JS wird ja mit new Date() das Datum vom Client genommen.
wie kann ich als Datum die Server-Zeit nehmen ?
bzw. gibt es eine (externe) Atom-Uhr, von der man das "genaue" aktuelle Datum holen kann ?
so, dass immer die richtige Uhrzeit angezeigt wird, unabhängig von Client- oder Server-Zeit?
Danke!
Beitrag zuletzt geändert: 4.7.2012 13:14:58 von digg -
digg schrieb:
gibt es noch eine andere Möglichkeit das Ding ohne
zu starten ?<body onload="start_uhr();">
Jup, schau dir mal das hier an: http://de.selfhtml.org/javascript/sprache/eventhandler.htm
Und zur Serverzeit: Soweit ich weiss, ginge das höchstens mit Ajax oder so, und dann würde ich eher komplett PHP statt JS bevorzugen an deiner Stelle.
Sowieso, wenn das beim Laden der Seite erscheint und nicht eventgebunden, kannste das sowieso per PHP anfordern.
Beitrag zuletzt geändert: 4.7.2012 13:24:29 von nicoa -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage