Überprüfen des Datums
Olk Okenheld
- javascript
0 wahsaga0 wahsaga0 Olk Okenheld0 wahsaga
Hallo,
ich habe mich gerade an einem Adventskalender versucht, bei dem ich mit JavaScript die Datumsabfrage machen will, allerdings haut die nicht hin. Das Script scheint nur den Tag zu überprüfen, nicht aber das Jahr oder den Monat, kann mir bitte jemand helfen?
Das Script sieht so aus...
<script language="JavaScript" type="text/javascript">
<!--
var Datum=new Array()
Datum[1]="Kalender/01.html"
Datum[2]="Kalender/02.html"
Datum[3]="Kalender/03.html"
Datum[4]="Kalender/04.html"
Datum[5]="Kalender/05.html"
Datum[6]="Kalender/06.html"
Datum[7]="Kalender/07.html"
Datum[8]="Kalender/08.html"
Datum[9]="Kalender/09.html"
Datum[10]="Kalender/10.html"
Datum[11]="Kalender/11.html"
Datum[12]="Kalender/12.html"
Datum[13]="Kalender/13.html"
Datum[14]="Kalender/14.html"
Datum[15]="Kalender/15.html"
Datum[16]="Kalender/16.html"
Datum[17]="Kalender/17.html"
Datum[18]="Kalender/18.html"
Datum[19]="Kalender/19.html"
Datum[20]="Kalender/20.html"
Datum[21]="Kalender/21.html"
Datum[22]="Kalender/22.html"
Datum[23]="Kalender/23.html"
Datum[24]="Kalender/24.html"
var aktuelles_Datum = new Date();
var Tag = aktuelles_Datum.getDate();
var Monat = aktuelles_Datum.getMonth();
var Jahr = aktuelles_Datum.getYear();
function moreinfo(Jahr_Test){
if (Jahr>=2003)
window.location=moreinfo(Monat_Test)
else
alert("Du alter Pfuscher, jeden Tag nur ein Türchen ;-)")
}
function moreinfo(Monat_Test){
if (Monat=12)
window.location=moreinfo(Tag_Test)
else
alert("Du alter Pfuscher, jeden Tag nur ein Türchen ;-)")
}
function moreinfo(Tag_Test){
if (Tag>=Tag_Test)
window.location=Datum[Tag_Test]
else
alert("Du alter Pfuscher, jeden Tag nur ein Türchen ;-)")
}
// -->
</script>
und ist im Kopf der HTML-Seite.
Die Komplette Seite findet Ihr unter:
www.Huck-Soft.de/Moiry/index3.html
Danke im Vorraus.
Olk
hi,
var Datum=new Array()
Datum[1]="Kalender/01.html"
Datum[2]="Kalender/02.html"
Datum[3]="Kalender/03.html"
es steht bei jedem array-index x der wert Kalender/x.html drin, mit führenden nullen.
den dateinamen hier aus dem datum dynamisch zu erzeugen, wäre einfacher ...
if (Jahr>=2003)
hast du diesbezüglich den hinweis unter http://selfhtml.teamone.de/javascript/objekte/date.htm#get_year beachtet, dass die jahreszahl je nach browser auch zweistellig sein könnte ...?
aber wozu der ganze aufwand?
ich an deiner stelle würde mir http://selfhtml.teamone.de/javascript/objekte/date.htm#to_gmt_string nehmen, und mir jeweils ein date-objekt mit einem timestamp für den 1.12.2003 nehmen, und eins für den 24.12.2003.
und dann schaust du nur noch nach, ob das aktuelle datum dazwischen liegt.
wenn ja, dann nimmst du dir mit getDate den aktuellen tag, und baust daraus den dateinamen zusammen, wobei du bei den einstelligen werten noch die 0 mit dazunimmst ...
gruss,
wahsaga
hi,
ich an deiner stelle würde mir http://selfhtml.teamone.de/javascript/objekte/date.htm#to_gmt_string nehmen, und mir jeweils ein date-objekt mit einem timestamp für den 1.12.2003 nehmen, und eins für den 24.12.2003.
sorry, der link war der falsche - den timestamp erzeugst du mit http://selfhtml.teamone.de/javascript/objekte/date.htm#utc.
gruss,
wahsaga
hi,
ich an deiner stelle würde mir http://selfhtml.teamone.de/javascript/objekte/date.htm#to_gmt_string nehmen, und mir jeweils ein date-objekt mit einem timestamp für den 1.12.2003 nehmen, und eins für den 24.12.2003.
sorry, der link war der falsche - den timestamp erzeugst du mit http://selfhtml.teamone.de/javascript/objekte/date.htm#utc.
gruss,
wahsaga
Danke, ich schau es mir mal an. :-)
Olk
hi,
Danke, ich schau es mir mal an. :-)
ähm, brauchst du gar nicht, wie ich gerade sehe.
mit
new Date("Monat Tag, Jahr Stunden:Minuten:Sekunden");
kannst du dir ja gleich ein date-objekt erzeugen.
also machst du
var anfang = new Date("12 1, 2003 00:00:00");
var ende = new Date("12 24, 2003 23:59:59");
var aktuell = new Date();
und prüfst dann ab, ob aktuell grösser als anfang und kleiner als ende ist ...
gruss,
wahsaga
mit
new Date("Monat Tag, Jahr Stunden:Minuten:Sekunden");
kannst du dir ja gleich ein date-objekt erzeugen.also machst du
var anfang = new Date("12 1, 2003 00:00:00");
var ende = new Date("12 24, 2003 23:59:59");
var aktuell = new Date();und prüfst dann ab, ob aktuell grösser als anfang und kleiner als ende ist ...
Dann sieht das jetzt so aus, dafür kann ich aber garkeine Tür mehr öffnen, obwohl ich die Systemuhr auf den 22.12.03 vorgestellt hab...
var anfang = new Date("12 1, 2003 00:00:00");
var ende = new Date("12 24, 2003 23:59:59");
var aktuell = new Date();
var Tag = aktuelles_Datum.getDate();
var Monat = aktuelles_Datum.getMonth();
var Jahr = aktuelles_Datum.getYear();
if(Jahr < 999) Jahr+=1900;
function moreinfo(Tag_Test){
if (aktuell>=anfang)
window.location=Datum[Tag_Test]
else
alert("Du alter Pfuscher, jeden Tag nur ein Türchen ;-)")
}
So, jetzt bin ich vollkommen verplant, ich find den Fehler nicht mehr. :-(
Warum ruft der Kalender jetzt immer den Wert von Else auf, obwohl ich meine Systemuhr auf den 22.12.2003 gestellt hab?
<script language="JavaScript" type="text/javascript">
<!--
var Datum=new Array()
Datum[1]="Kalender/01.html"
Datum[2]="Kalender/02.html"
Datum[3]="Kalender/03.html"
Datum[4]="Kalender/04.html"
Datum[5]="Kalender/05.html"
Datum[6]="Kalender/06.html"
Datum[7]="Kalender/07.html"
Datum[8]="Kalender/08.html"
Datum[9]="Kalender/09.html"
Datum[10]="Kalender/10.html"
Datum[11]="Kalender/11.html"
Datum[12]="Kalender/12.html"
Datum[13]="Kalender/13.html"
Datum[14]="Kalender/14.html"
Datum[15]="Kalender/15.html"
Datum[16]="Kalender/16.html"
Datum[17]="Kalender/17.html"
Datum[18]="Kalender/18.html"
Datum[19]="Kalender/19.html"
Datum[20]="Kalender/20.html"
Datum[21]="Kalender/21.html"
Datum[22]="Kalender/22.html"
Datum[23]="Kalender/23.html"
Datum[24]="Kalender/24.html"
new Date("Monat Tag, Jahr Stunden:Minuten:Sekunden");
var anfang = new Date("12 1, 2003 00:00:00");
var ende = new Date("12 24, 2003 23:59:59");
var aktuell = new Date();
var Tag = aktuell.getDate();
var Sekunden = aktuell.getSeconds();
var Minuten = aktuell.getMinutes();
var Stunden = aktuell.getHours();
var Monat = aktuell.getMonth();
var Jahr = aktuell.getYear();
var Tag = aktuell.getDate();
var Monat = aktuell.getMonth();
var Jahr = aktuell.getYear();
if(Jahr < 999) Jahr+=1900;
function moreinfo(test){
if (aktuell>=anfang)
window.location=Datum[test]
else
alert("Du alter Pfuscher, jeden Tag nur ein Türchen ;-)")
}
// -->
</script>
Hallo,
So, jetzt bin ich vollkommen verplant, ich find den Fehler nicht mehr. :-(
Warum ruft der Kalender jetzt immer den Wert von Else auf, obwohl ich meine Systemuhr auf den 22.12.2003 gestellt hab?
new Date("Monat Tag, Jahr Stunden:Minuten:Sekunden");
Was soll diese Zeile bewirken? Einen Kommentar schreibt man so:
//new Date("Monat Tag, Jahr Stunden:Minuten:Sekunden");
var anfang = new Date("12 1, 2003 00:00:00");
alert(anfang);
Diese Fehlerprüfung würde Dir zeigen, dass anfang NaN (Not a Number) ist. Die Funktion sollte so
var anfang = new Date("december 1, 2003 00:00:00");
aufgerufen werden.
http://selfhtml.teamone.de/javascript/objekte/date.htm
...
Ausnahme: bei Variante (2) übergeben Sie die Initialisierungsdaten als Zeichenkette. Dabei wird der Monat in englischer Schreibweise angegeben, also beispielsweise october.
...
Ich würde allerdings diese Variante bevorzugen:
var anfang = new Date(2003,11,1,0,0,0);
Bitte beachten: http://selfhtml.teamone.de/javascript/objekte/date.htm
...
Wenn Sie einen Monat als Zahlenwert übergeben, so wie in den Varianten 3 und 4, müssen Sie bei 0 zu zählen beginnen. Für Januar müssen Sie also 0 übergeben, für Februar 1, und für Dezember 11. Dies ist auch der Grund, warum für den Monat Oktober nicht 10 sondern 9 übergeben wird.
...
viele Grüße
Axel
also die Zeile:
new Date("Monat Tag, Jahr Stunden:Minuten:Sekunden");
ist natürlich oben drüber...