Wij zijn open/gesloten functie

Status
Niet open voor verdere reacties.

Ruben L

Gebruiker
Lid geworden
6 okt 2004
Berichten
10
Opgelosst: Wij zijn open/gesloten functie

Hallo luitjes,

Ik wil in de content van mijn website automatisch laten zien of wij open of gesloten zijn. Een beetje hetzelfde als het goed middag/ochten/avond script. Ik heb zo'n (werkend) script opgezocht en wil deze aanpassen. Hieronder het originele script:

Code:
<SCRIPT LANGUAGE="JavaScript">
<!-- AFSCHERMEN VOOR OUDE BROWSERS

function greeting()  {
        Now = new Date()
        Hour = Now.getHours()
        if(Hour < 12)		// Hier staat welk aantal uren hij Goedemorgen weergeeft (hier: als je voor twaalf uur kijkt, staat er Goedemorgen)
           msg = "Goedemorgen"	// de tekst van de begroeting
        else
           if(Hour < 18)
              msg = "Goedemiddag"	// de tekst van de begroeting
           else
              msg = "Goedenavond"	// de tekst van de begroeting
return( msg )
}

// EINDE AFSCHERMING -->
</SCRIPT>

Dit staat tussen de head tags.

Code:
<SCRIPT LANGUAGE="JavaScript">document.write(greeting())</SCRIPT>
Dit staat tussen de body tags.

Ik ben zelf niet zo bekent met java. Maar als ik hem zo aanpas (wijziging vet):

<SCRIPT LANGUAGE="JavaScript">
<!-- AFSCHERMEN VOOR OUDE BROWSERS

function openclosed() {
Now = new Date()
Day = Now.getDay()
if(Day = Monday)
msg = "Gesloten"
else
if(Day = Friday)
msg = "Open"
else
msg = "Gesloten"
return( msg )
}

// EINDE AFSCHERMING -->
</SCRIPT>

en het andere script:
Code:
<SCRIPT LANGUAGE="JavaScript">document.write([B]openclosed[/B]())</SCRIPT>

Dat werkt het niet. Wat doe ik fout?
 
Laatst bewerkt:
Tussen de haakjes van die twee if-condities moet je de "=" vervangen door "==". Er is nl. een groot verschil tussen de twee; "=" maakt de waarde in het linkerlid gelijk aan die in het rechterlid. Maar "==" daarentegen, gaat kijken of het linkerlid gelijk is aan het rechterlid, en returnt True of False. En dat is dus het tekentje dat je nodig hebt.
 
Als ik het goed begrijp, zou het zo goed moeten zij:

<SCRIPT LANGUAGE="JavaScript">
<!-- AFSCHERMEN VOOR OUDE BROWSERS

function openclosed() {
Now = new Date()
Day = Now.getDay()
if(Day == Monday)
msg = "Gesloten"
else
if(Day == Friday)
msg = "Open"
else
msg = "Gesloten"
return( msg )
}

// EINDE AFSCHERMING -->
</SCRIPT>

Ook dan doet ie het niet...
 
Als ik het goed begrijp, zou het zo goed moeten zij:

<SCRIPT LANGUAGE="JavaScript">
<!-- AFSCHERMEN VOOR OUDE BROWSERS

function openclosed() {
Now = new Date()
Day = Now.getDay()
if(Day == Monday)
msg = "Gesloten"
else
if(Day == Friday)
msg = "Open"
else
msg = "Gesloten"
return( msg )
}

// EINDE AFSCHERMING -->
</SCRIPT>

Ook dan doet ie het niet...

O ja, da's waar ook. getDay() returnt niet de naam van de dag, maar het id nummer ervan.
Maandag is 1, dinsdag is 2, woensdag is 3 enz.

Dus het volgende zal wel werken denk ik:
Code:
<SCRIPT LANGUAGE="JavaScript">
<!-- AFSCHERMEN VOOR OUDE BROWSERS

function openclosed() {
Now = new Date()
Day = Now.getDay()
if(Day == 1)
msg = "Gesloten"
else
if(Day == 5)
msg = "Open"
else
msg = "Gesloten"
return( msg )
}

// EINDE AFSCHERMING -->
</SCRIPT>
 
Ja dat werkt, helemaal te gek dank je wel!

Als ik een stap verder wil gaan en de melding niet alleen op dagen wil laten slaan maar ook op tijd ben ik dan zo op de goede weg??

Code:
<SCRIPT LANGUAGE="JavaScript">
<!-- AFSCHERMEN VOOR OUDE BROWSERS

function openclosed() {
Now = new Date()
Day = Now.getDay()
Hour = Now.getHours()
if(Day == 1; Hour < 9; Hour > 17)
msg = "gesloten"
else
if(Day == 2; Hour < 9; Hour > 17)
msg = "gesloten"
else
if(Day == 3; Hour < 9; Hour > 17)
msg = "gesloten"
else
if(Day == 4; Hour < 9; Hour > 17)
msg = "gesloten"
else
if(Day == 5; Hour < 9; Hour > 17)
msg = "gesloten"
else
if(Day == 6)
msg = "gesloten"
else
if(Day == 7)
msg = "gesloten"
else
msg = "geopend"
return( msg )
}

// EINDE AFSCHERMING -->
</SCRIPT>
 
Laatst bewerkt:
Hij is bijna goed, alleen moet je in de ifjes gebruik maken van && ("en"), i.p.v. de puntkomma's.
Dus
HTML:
if(Day == 1 && Hour < 9 && Hour > 17)
i.p.v.
HTML:
if(Day == 1; Hour < 9; Hour > 17)

En dit moet je veranderen bij alle ifjes.

Overigens, moet je "7" vervangen door "0". getDay() levert namelijk een getal op tussen de 0 en de 6, waarbij 0 voor zondag staat en 6 voor zaterdag.
Ook mag je de laatste else weghalen
HTML:
else
msg = "geopend"
return( msg )
Je hebt namelijk alle mogelijkheden in de ifjes daarboven al opgenomen.
Je zal ook achter elke regel (behalve de ifjes en de elsejes) een puntkomma moeten zetten.
 
Laatst bewerkt:
dus dit zou 'm moeten zijn:
Code:
<SCRIPT LANGUAGE="JavaScript">
<!-- AFSCHERMEN VOOR OUDE BROWSERS

function openoffice() {
Now = new Date()
Day = Now.getDay()
Hour = Now.getHours()
if(Day == 1 && Hour < 9  && Hour > 17)	// Maandag geopend 9-17
msg = "gesloten"
else
if(Day == 2 && Hour < 9  && Hour > 17)	// Dinsdag geopend 9-17
msg = "gesloten"
else
if(Day == 3 && Hour < 9  && Hour > 17 )	// Woensdag geopend 9-17
msg = "gesloten"
else
if(Day == 4 && Hour < 9  && Hour > 17)	// Donderdag geopend 9-17
msg = "gesloten"
else
if(Day == 5 && Hour < 9  && Hour > 17)	// Vrijdag geopend 9-17
msg = "gesloten"
else
if(Day == 6)						// Zaterdag gesloten
msg = "gesloten"
else
if(Day == 0)						// Zondag gesloten
msg = "gesloten"
else
msg = "geopend"
return( msg )
}

// EINDE AFSCHERMING -->
</SCRIPT>
 
Het werkt niet, althans, er wordt nu (22:05 uur) geprint dat we open zijn, 'kleiner dan' en 'groter dan' omgedraaid, ook dat heeft geen effect. :(
 
Volgens mij is het nu goed. Ik heb het script vereenvoudigd.

Code:
<SCRIPT LANGUAGE="JavaScript">
<!-- AFSCHERMEN VOOR OUDE BROWSERS

function opencentrale() {
Now = new Date()
Day = Now.getDay()
Hour = Now.getHours()
if(Day == 1 && Hour > 9 && Hour < 17)	// Maandag geopend 9-17
msg = "geopend."
else
if(Day == 2 && Hour > 9 && Hour < 17)	// Dinsdag geopend 9-17
msg = "geopend."
else
if(Day == 3 && Hour > 9 && Hour < 17)	// Woensdag geopend 9-17
msg = "geopend."
else
if(Day == 4 && Hour > 9 && Hour < 17)	// Donderdag geopend 9-17
msg = "geopend."
else
if(Day == 5 && Hour > 9 && Hour < 17)	// Vrijdag geopend 9-17
msg = "geopend."
else
msg = "gesloten."
return( msg )
}

// EINDE AFSCHERMING -->
</SCRIPT>
 
Code:
<SCRIPT LANGUAGE="JavaScript">
<!-- AFSCHERMEN VOOR OUDE BROWSERS

function opencentrale() {
Now = new Date()
Day = Now.getDay()
Hour = Now.getHours()
msg = "gesloten."
if(Day == 1 && Hour > 9 && Hour < 17)	// Maandag geopend 9-17
msg = "geopend."
else
if(Day == 2 && Hour > 9 && Hour < 17)	// Dinsdag geopend 9-17
msg = "geopend."
else
if(Day == 3 && Hour > 9 && Hour < 17)	// Woensdag geopend 9-17
msg = "geopend."
else
if(Day == 4 && Hour > 9 && Hour < 17)	// Donderdag geopend 9-17
msg = "geopend."
else
if(Day == 5 && Hour > 9 && Hour < 17)	// Vrijdag geopend 9-17
msg = "geopend."
else
msg = "gesloten."
return( msg )
}

// EINDE AFSCHERMING -->
</SCRIPT>

Volgens mij moet er bovenin de code nog komen te staan msg = "geopend". DIt omdat hij alleen onder enkele strikte voorwaarden de waarde "geopend" toe kent aan de variabele msg
 
Er zit nog een foutje in, het moet Hour >= 9 zijn, anders geeft 9:15 nog steeds gesloten.

Of zo: ;)
PHP:
<script type="text/javascript">
 <!--
  function opencentrale() {
   var tijd = new Array(
    // zondag t/m zaterdag
    {min:  0, max:  0},
    {min:  9, max: 17},
    {min:  9, max: 17},
    {min:  9, max: 17},
    {min:  9, max: 17},
    {min:  9, max: 17},
    {min:  0, max:  0},
    '');
   var nu  = new Date();
   var dag = nu.getDay();
   var uur = nu.getHours();
   if (tijd[dag].min <= uur && uur < tijd[dag].max) return 'geopend.';
   return 'gesloten.';
   };
 // -->
</script>


<script type="text/javascript">
 document.writeln(opencentrale());
</script>


Vr.Gr. Egel.
 
Dank voor je reactie. Daar was ik ook achter gekomen, ik heb het anders opgelost: ik heb de 9 in 8 veranderd.
 
Eerst wil ik jullie al van harte bedanken voor dit script, dat werkt perfect hoor!!
Nu heb ik nog een vraagje, wij hebben gesplitste shiften hoe kan ik dit dan doen
bv open van 11u45 tot 13u30 en van 17u tot 22u

Hartelijk dank alvast!
 
Beste oilsjt,

Welkom op Helpmij.nl :)

Het is niet de bedoeling dat je in vragen die al behoorlijk oud zijn (zoals dit topic) nog gaat reageren. Dan kun je beter een nieuw topic openen. Deze sluit ik.

Met vriendelijke groet,

Erik Booij
Moderator Helpmij.nl
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan