Anfängerproblem :/
MarcBr
- javascript
Hallo Leute,
ich habe hier folgendes Skript, das aus irgendeinem Grund nicht funktioniert: Wenn Sonntag, dann soll eine Meldung und eine Weiterleitung durchgeführt werden. Wenn Montag-Samstag, dann soll je nach Uhrzeit folgendes passieren. Zwischen 10 und 17 Uhr,soll eine Meldung erscheinen - Zwischen 17 und 10 Uhr soll ebenfalls eine Meldung + Weiterleitung durchgeführt werden.)
Ebenfalls würde ich gerne wissen, wie die Uhrzeit/Datum mit der "richtigen" Uhrzeit abgeglichen werden kann anstatt mit der Systemuhrzeit von meinem Rechner. Gut wäre beispielsweise die Uhrzeit und das Datum von http://www.uhrzeit.org/ oder einer ähnlichen Atomuhr.
var datum = new Date() var wochentag = datum.getDay() var jetzt = new Date(); var Std = jetzt.getHours();
if (wochentag==0) { alert("Dieses Restaurant hat Sonntags geschloßen - Bitte beachten Sie die Öffnungszeiten."); document.location.href = 'http://google.de'; } else if (wochentag>=1) { if (Std >= 10 && Std < 17) { alert("Wir haben geöffnen, bitte bestellen Sie!"); document.location.href = 'morgens.html' } else if (Std >= 17 && Std < 10) { alert("geschlossen"); document.location.href = 'http://google.de' } }
Vielen Dank
Om nah hoo pez nyeetz, MarcBr!
Ebenfalls würde ich gerne wissen, wie die Uhrzeit/Datum mit der "richtigen" Uhrzeit abgeglichen werden kann anstatt mit der Systemuhrzeit von meinem Rechner. Gut wäre beispielsweise die Uhrzeit und das Datum von http://www.uhrzeit.org/ oder einer ähnlichen Atomuhr.
Lass deinen Rechner seine Systemzeit im Internet synchronisieren. Außerdem werden die Unterschiede wohl nicht so riesig sein, dass es für Öffnungszeiten eines Restaurants lebenswichtig wäre. Viel wichtiger, wäre ggf. eine Fahrtzeit, die zu berücksichtigen wäre. Was nützt es mir, wenn ich die Meldung bekomme, es sei geöffnet und wenn ich nach 20 Minuten dort ankomme, ist trotzdem geschlossen.
Matthias
Hi,
var datum = new Date() var wochentag = datum.getDay() var jetzt = new Date();
warum holst Du hier nochmal ein neues Date?
var Std = jetzt.getHours();
Die Stunde kannst Du doch auch aus datum ermitteln.
if (Std >= 10 && Std < 17) { alert("Wir haben geöffnen, bitte bestellen Sie!");
geöffnet
document.location.href = 'morgens.html' } else if (Std >= 17 && Std < 10) {
wenn die Stunde sowohl größer als 17 als auch kleiner als 10 ist? Wie soll das jemals wahr werden? Das müßte ein ODER sein, kein UND.
Aber: da ja alle Stunden betroffen sind, die nicht im ersten Fall enthalten sind, kann das if hier auch komplett entfallen.
cu, Andreas
Hallo,
alert("Wir haben geöffnen, bitte bestellen Sie!");
geöffnet
hier monierst du einen Rechtschreibfelher, aber die zwei in "Sonntags geschloßen" ignorierst du? tststs
Gruß Kalk
Ebenfalls würde ich gerne wissen, wie die Uhrzeit/Datum mit der "richtigen" Uhrzeit abgeglichen werden kann anstatt mit der Systemuhrzeit von meinem Rechner.
Da würde ich mir ansehen was eine Suchmaschine unter "javascript query time server" alles liefert.
Das ganze sieht sehr nach nur einer Übungsaufabe ohne realen Hintergrund aus? Falls es das nicht ist solltest du dringend ein paar Dinge überdenken.
Deine Aufgabe wäre viel besser serverseitig aufgehoben. Der Server soll sich entscheiden welche Seite er anzeigen will. Dessen Uhr wird im Regelfall stimmen und so etwas erst auf dem Nutzerrechner zu entscheiden halte ich für viel zu kompliziert und fehleranfällig.
Ein alert mit dem Inhalt "die Seite funktioniert heute, gleich gehts weiter" macht einen seltsamen Eindruck. Hab ich bisher noch nirgends gesehen. Warum nicht gleich das zeigen was der Nutzer sehen will.
Am Sonntag zu einer anderen Seite umleiten ist das schlimmste was du tun kannst. Das drückt aus "heute ist geschlossen, hau ab". Dann noch zu einer Suchmaschine weiterleiten, damit man sich gleich ein anderes Restaurant suchen kann? Bei dem wird man dann aber bleiben. Zeig dem Besucher dass heute nichts bestellt werden kann aber lass ihn auf deiner Seite damit er da weitersuchen kann.
Moin,
Das ganze sieht sehr nach nur einer Übungsaufabe ohne realen Hintergrund aus?
Ja. Wäre doch mal ne Idee für ein Kompendium. Errinert mich an den Sketch mit dem Fernstudium auf Kurzwelle:
Rudi: Wo haben Sie so gut Deutsch gelernt? Gast: Fern...krr..Studium...pfiff...auf...pieep...Kurzwelle...pfeif.
mit eingebauten atmosphärischen Störungen. Die hat der Gast gleich mitgelernt...krack.
Schönen Sonntag, &SCNR;
Gut wäre beispielsweise die Uhrzeit und das Datum von http://www.uhrzeit.org/ oder einer ähnlichen Atomuhr.
Hoho... Das ist ein Webshop, aber keine Atomuhr.
var datum = new Date()
hm. new Date kann eine Zeitangabe in Millisekunden seit dem 1.1.1970 verarbeiten. Die kann, falls Du PHP hast, Dein Webserver genau genug liefern:
var datum = new Date('<?php echo time()*1000 ?>');
im Browser kommt dann etwas wie
var time = new Date('1425824024000');
an, damit kannst Du weiter rechnen.
Jörg Reinholz
Hey,
also Danke schonmal. Es geht hier jedoch gerade nicht um die Rechtschreibung. Ich habe irgendwelche beliebigen Alerts genutzt um zu überprüfen ob die Anweisungen funktionieren.
Es geht speziell um diesen Part:
else if (wochentag>=1) { if (Std >= 10 && Std < 17) { alert("Wir haben geöffnen, bitte bestellen Sie!"); document.location.href = 'morgens.html' } else if (Std >= 17 && Std < 10) { alert("geschlossen"); document.location.href = 'http://google.de'
Wo sitzt da der Syntax- bzw. Logikfehler?
Hallo Leute,
ich habe hier folgendes Skript, das aus irgendeinem Grund nicht funktioniert: Wenn Sonntag, dann soll eine Meldung und eine Weiterleitung durchgeführt werden. Wenn Montag-Samstag, dann soll je nach Uhrzeit folgendes passieren. Zwischen 10 und 17 Uhr,soll eine Meldung erscheinen - Zwischen 17 und 10 Uhr soll ebenfalls eine Meldung + Weiterleitung durchgeführt werden.)
Ebenfalls würde ich gerne wissen, wie die Uhrzeit/Datum mit der "richtigen" Uhrzeit abgeglichen werden kann anstatt mit der Systemuhrzeit von meinem Rechner. Gut wäre beispielsweise die Uhrzeit und das Datum von http://www.uhrzeit.org/ oder einer ähnlichen Atomuhr.
var datum = new Date() var wochentag = datum.getDay() var jetzt = new Date(); var Std = jetzt.getHours();
if (wochentag==0) { alert("Dieses Restaurant hat Sonntags geschloßen - Bitte beachten Sie die Öffnungszeiten."); document.location.href = 'http://google.de'; } else if (wochentag>=1) { if (Std >= 10 && Std < 17) { alert("Wir haben geöffnen, bitte bestellen Sie!"); document.location.href = 'morgens.html' } else if (Std >= 17 && Std < 10) { alert("geschlossen"); document.location.href = 'http://google.de' } }
Vielen Dank
Hallo,
else if (Std >= 17 && Std < 10)
Wo sitzt da der Syntax- bzw. Logikfehler?
in genau der Zeile, die ich habe stehenlassen: Std kann nicht gleichzeitig größer oder gleich 17 und kleiner als 10 sein. Das hat aber heute morgen schon gesagt.
Hallo Leute,
Vielen Dank
Und bitte kein TOFU. Danke.
Ciao, Martin
Wo sitzt da der Syntax- bzw. Logikfehler?
Falls es nicht das ist, , wäre es hilfreich, wenn du mal schreibst, was denn nicht so passiert, wie es passieren soll. "Funktioniert nicht" und "Wo ist der Fehler?" sind keine brauchbaren Beschreibungen für eine Fehlersuche.
Ansonsten: Nicht gleich aufhören zu lesen, wenn was kommt, was man nicht lesen mag (hier: Rechtschreibfehler).
Danke Leute,
habe das Problem nun gelöst.
Om nah hoo pez nyeetz, MarcBr!
habe das Problem nun gelöst.
Vielleicht magst du die Lösung hier veröffentlichten, damit sie a) mit deiner Frage im Archiv landet und b) sie noch zerpflückt und optimert werden kann.
Matthias
Tatsächlich hat folgender Kommentar geholfen:
„wenn die Stunde sowohl größer als 17 als auch kleiner als 10 ist? Wie soll das jemals wahr werden? Das müßte ein ODER sein, kein UND.“