Robert Bamler: Lässt sich das einfacher machen?

Beitrag lesen

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:

  • Ich würde nicht jede Sekunde wieder abfragen: Das belastet IMHO den
      Browser zu stark.
  • Mir ist noch nicht ganz klar, wozu das ganze gut sein soll: Wenn
      sich jemand die Seite im Internet anschaut, wird er doch
      höchstwahrscheinlich zu Hause sein. Da ist es ihm in den meisten
      Fällen wohl eher egal, ob der Laden jetzt im Moment gerade offen
      hat. Und wann bzw. wie lange er noch offen hat, kann er sicht ja
      selbst ausrechnen. Es wäre sicher eine ganz nette Hilfe, den
      aktuellen Ladenzustand anzuzeigen, aber es ist sehr fehlerträchtig,
      da auf die Uhr des Benutzers zurückgegriffen wird. Das kann zu
      unangenehmen Missverständnissen führen, wenn auf einmal ein
      Besucher mit falsch eingestellter Computeruhr vor der Tür wartet
      und darauf besteht, jetzt hineingelassen zu werden ;-)

Robert