Lässt sich das einfacher machen?
trueTom
- javascript
Hi,
nocheinmal zu meinem Script, welches den Status ob ein Laden offen ist oder nicht ausgibt.
Gibt es eine Möglichkeit dieses dynamischer mit Javascript zu schreiben?
So das, wenn sich die Ladenöffnungszeiten ändern nicht alles neu schreiben muss :(.
<!--Ladenöffnung Dortmund zwischen Montag - Freitag
7:00 - 9:15 Uhr
11:15 - 13:30 Uhr
14:30 - 15:00 Uhr// -->
<html>
<head>
<title>Status Laden DO</title>
</head>
<body>
<script language="JavaScript"><!--
window.setTimeout('Status()',0);
function Status()
{var Jetzt = new Date();
var Stunden = Jetzt.getHours();
var Minuten = Jetzt.getMinutes();
var WoTag = Jetzt.getDay();
if (WoTag == 0 || WoTag == 6) // Samstag und Sonntag ausgeschlossen
{ meldung_zu();
}
else
{ if (Stunden >= 7 && Stunden < 9 ) // Bereich 7:00 - 8:59 offen
{ meldung_offen();
}
else if (Stunden >= 9 && Stunden < 10) // Bereich ab 9:15 zu
{ if (Minuten >=15)
{ meldung_zu();
}
else
{ meldung_offen();
}
}
else if (Stunden >= 11 && Stunden < 12) // ab 11:15 bis 11:59 offen
{ if (Minuten >=15)
{ meldung_offen();
}
else
{ meldung_zu();
}
}
else if (Stunden >= 12 && Stunden < 13) // zwischen 12:00 - 12:59 offen
{ meldung_offen();
}
else if (Stunden >= 13 && Stunden < 14) // bis 13:30 offen, danach zu
{ if (Minuten < 30)
{ meldung_offen ();
}
else
{ meldung_zu ();
}
}
else if (Stunden >= 14 && Stunden < 15) // 14:30 bis 15:00 offen
{ if (Minuten < 30)
{ meldung_zu ();
}
else
{ meldung_offen ();
}
}
else // bei allen übrigen Zeiten zu
{ meldung_zu ();
}
}
} //klammer von Funktion
function meldung_offen()
{
document.laden.status.value='geöffnet';
window.setTimeout('Status()',1000);
}
function meldung_zu()
{
document.laden.status.value ='geschlossen';
window.setTimeout('Status()',1000);
}
// --></script>
<form name="laden">
<p><input size="12" name="status" style="border: medium none; margin: 0px"> </p>
</form>
<p> </p>
</body>
</html>
</faq/#Q-11>
</faq/#Q-11>
aha danke auch !?
Das ist doch eine ganz neue Frage!!!
Hallo,
</faq/#Q-11>
aha danke auch !?
Das ist doch eine ganz neue Frage!!!
wenn man sich <?m=81080&t=14603> ff. so durchliest, kann man da auch
anderer Meinung sein ;-)
<?m=81080&t=14603> enthält das fast identische Script, <?m=81142&t=14603>
ist die eben gestelle Frage.
Es ist nicht notwendig und auch nicht erwünscht, die gleiche Frage
innerhalb weniger Stunden (hier: 65 Minuten) in einem neuen Thread
zu stellen.
Viele Grüße,
Stefan
Hallo,
else if (Stunden >= 9 && Stunden < 10) // Bereich ab 9:15 zu
{ if (Minuten >=15)
{ meldung_zu();
}
else
{ meldung_offen();
}
}
Das mit der verschachtelten Abfrage finde ich umständlich. Versuch's mal so:
function Status()
{
var Jetzt = new Date();
var tagMinuten = Jetzt.getHours()*60 + Jetzt.getMinutes();
var WoTag = Jetzt.getDay();
if (
WoTag != 0 && WoTag != 6 && (
(tagMinuten >= 7*60+00 && tagMinuten < 9*60+15) ||
(tagMinuten >= 11*60+15 && tagMinuten < 13*60+30) ||
(tagMinuten >= 14*60+30 && tagMinuten < 15*60+00)
)
) meldung_offen();
else meldung_zu();
}
Zwei Dinge fallen mir noch ein:
Robert
wow vielen Dank!
:)
das das so einfach geht :)!!
Die Statusanzeige soll im Intranet angezeigt werden und bei dem Laden handelt es sich um einen in der Firma.
Die Uhrzeit wird bei jedem Start vom Server neu gesetzt ;), daher hat sie so jeder richtig :).
echt nochmal Vielen Dank!
MFG
trueTom
eine kleine Frage nicht direkt zu dem Script, aber zu dessen einsatzt.
leider lässt sich ein Textfeld, nur im IE ohne Rand ,anzeigen. Nicht in Netscape :(
Ich will aber den Status in einen Text einbinden. Gibt es für Netscape eine andere Möglichkeit als Layer ?
Diese kann man so schlecht richtig in einen Text positionieren. :(
Vielen Dank
trueTom
Hi,
So das, wenn sich die Ladenöffnungszeiten ändern nicht alles neu schreiben muss :(.
Klar doch:
zeiten = new Array ("7:00" , "9:15", "11:00" , "13:15", "16:00" , "19:15");
function pruefeZeit()
{
var rval = "closed";
currDate = new Date();
currHour = currDate.getHours();
currMin = currDate.getMinutes();
for (i=0;i<zeiten.length;i+=2)
{
var zeit = zeiten[i].split(":");
shour = parseInt(zeit[0]);
smin = parseInt(zeit[1]);
var zeit = zeiten[i+1].split(":");
ehour = parseInt(zeit[0]);
emin = parseInt(zeit[1]);
sTime = shour*100+smin;
eTime = ehour*100+emin;
cTime = currHour*100+currMin;
if ((cTime >= sTime) && (cTime < eTime) && (rval == "closed"))
rval = "open";
else if (rval == "closed")
rval = "closed";
}
if (rval == "open")
alert ("offen");
else
alert ("zu");
}
Im Array Zeiten kannst du nun, immer ein Zeitenpaar angeben oder ändern.
Array (Öffnungszeit,Schließzeit,Öffnungszeit,...)
Gruß
ueps
Danke für die Möglichkeit.
Da muss ich mich erst einmal *reinlesenverstehen* *g*.
Danke für die Möglichkeit.
Da muss ich mich erst einmal *reinlesenverstehen* *g*.
Bitte, viel Glück
ueps