Berechne Öffnungszeit beginnend vor Mitternacht bis zum nächsten Tag

  • Hallo,

    ich hab die folgende Aufgabe: Ich brauche eine Funktion die anzeigt, wenn ein Lokal geöffnet hat und wann nicht. Ein einfaches true/false reicht da vollkommen, die Sache ist nur die: Was ist bei Nachtclubs / Diskotheken ? Da erstreckt sich die Zeit zB von 21:00 Uhr bis 05:00 Uhr am nächsten Tag. Wie errechne ich am geschicktesten ob die aktuelle Uhrzeit in der Zeitspanne zwischen den beiden angegebenen Uhrzeiten liegt?

    Wäre für Lösungsvorschläge dankbar.

    MfG

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • ich hab die folgende Aufgabe


    Machen wir hier deine Hausaufgaben oder deinen Job?

    Kurz nachgedacht und schon könnte man der Meinung sein, das Timestamps prima zum Rechnen geeignet sind. Jetzt muss man nur noch überlegen, wie man die Uhrzeiten passend zum Tag hinbekommt und schon ist man fertig!
    Ungetestet:

    <edit>
    Wo ich gerade diesen Thread nochmal sehe, da fehlt noch was. Man kann nicht einfach einen Tag dazuaddieren, man muss wissen, ob man sich in Tag x oder y befindet. Aber das kannst du ja selber einbauen
    </edit>

    2 Mal editiert, zuletzt von Bandit (20. Juni 2012 um 21:26)

  • Weder noch - einen Bruchteil meines Projekts :b (aus der Zeit wo ich Hausaufgaben mache bin ich mit 21 schon länger draußen ^^)

    Wie so oft hab ich es mal wieder 20 Minuten nachdem ich diesen Thread erstellt hab selbst geschafft, komplett in SQL ohne PHP zu "missbrauchen" - verringert die Abfragegröße und soweit ich mich erinnern kann ist SQL schneller - ist eine ziemlich brutal große IF() Sache - sie hat zwar nur ein If aber sehr viele AND und OR drinnen

    Meine weiterführende Frage wäre eher theoretischer Natur: Wie sehr leidet die Datenbank unter solchen Abfragen ?
    IF( e.`event_datetime` AND OR ( AND AND OR ) OR ( ( AND AND OR ) ) ...., 1, 0)

    So ungefähr sieht die Kette aus, damit man sich vorstellen kann wie das mit den AND und OR Abfragen gemeint ist - es wird zwar nur mit insgesamt zwei Spalten gerechnet (event_datetime und event_datetime_end) -> Wie sehr tut so eine Abfrage der Datenbank weh ? SQL sagt, daß die Abfrage 0,0006 Sekunden braucht für 4 Einträge. Es werden aber am Ende wohl um die 5000 sein...

    Meine zweite Frage wäre folgende: Ich habe vor per Subselects Ausnahmen für Mehrtägige Events zu machen (meine Abfrage hat ein recht komplexes System zum Handeln von mehrtägigen Events), zB: Mo - Do, immer um 14:00 Uhr - 18:00 Uhr, nur am Mi von 15:00 - 18:00

    Wie ich das umsetze weiß ich, meine Frage hierzu wäre: Wie viel schmerzt so eine Subselect Abfrage die Datenbank ? Auswahlkriterium ist event_id und event_date

    Lg

    PHP
    if(isset($this) || !isset($this)){ // that's the question...