Zeitabfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeitabfrage

    Hi Leute,

    ich hab ein kleines (großes) prolem.
    Ich möchte gern ein Bestellformular für eine Heiservice Homepage programmieren.

    Mein Problem dabei liegt darin, dass ich nicht so recht weiß, wie ich das mit den Öffnungszeiten lösen soll.

    Der Heimservice hat nur Lieferzeiten zwischen 11:00 Uhr und 14:00 Uhr und dann wieder ab 17:00 Uhr bis 23:00 Uhr.

    wie kann ich es realisieren, dass ein Script checkt ob es momentan zwischen 14 und 17 uhr bzw. nach 23 Uhr ist und den besteller dann sagt dass er außerhalb der lieferzeiten bestellt?

    Vielen Dank im Voraus für Eure Mühen!

    LG
    Mo
    Leben und leben lassen

  • #2
    In dem du die aktuelle Zeit ermittels und prüfst, ob diese innerhalb deiner Zeitfenster ist. time() und strtotime() wird dich da bestimmt weiter bringen!
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Wie kann ich strtotime(); am besten nutzen?
      Leben und leben lassen

      Kommentar


      • #4
        Hi, ich würde dieses Problem eher so lösen.



        PHP-Code:
        $aktuelleZeit date("Y-m-d H:i");
        $start1 = (date("Y-m-d") . " 11:00");
        $ende1 = (date("Y-m-d") . " 14:00");
        $start2 = (date("Y-m-d") . " 17:00");
        $ende2 = (date("Y-m-d") . " 23:00");

        if((
        $aktuelleZeit $start1 && $aktuelleZeit $ende1) || ($aktuelleZeit $start2 && $aktuelleZeit $ende2))
        {
            
        // In den Öffnungszeiten
        }
        else
        {
            
        // Ausserhalb der Öffnungszeiten


        Ist vielleicht nicht die beste Lösung aber funktioniert durchaus.


        Gruß
        CSlade
        http://www.bmtec.org

        Kommentar


        • #5
          @CSlade

          Das Datum kannst du in dem Fall aber komplett weglassen. Es reicht die Uhrzeiten, bzw. in diesem speziellen Fall die Stundenzahlen zu vergleichen.

          Kommentar


          • #6
            Cool... das funktioniert. PERFECT....Großes Dakeschön

            AAAAAAABER....

            Ein Heimservice hat ja Samstags, Sonn. -und Feiertage durchgehend von 11 Uhr - 23 Uhr geöffnet.

            Ich denk mal das mir den Samstagen und Sonntagen sollte machbar sein, aaaber wie macht man das dann mit den Feiertagen?

            Muss ich die da alle dann eingeben bzw. checken lassen!?

            Sorry, bin noch nicht so lange mit PHP dabei...
            Leben und leben lassen

            Kommentar


            • #7
              Das Problem am Type Juggling von PHP ist, dass jonglieren für ungeübte schnell mal in einem heillosen Durcheinander enden kann. Und auch für erfahrene Programmierer ist es nicht Sinnvoll, sich auf die (nicht immer konsequente) kontextabhängige Typenkonvertierung von PHP zu verlassen. Ich würde hier definitiv auf Timestamps setzen!
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                PHP-Code:
                <?php

                $geoeffnet 
                false;
                $zeit date('H:i');

                $oeffnungszeiten = array(
                    
                'werktag'  => array('11:00' => '14:00''17:00' => '23:00'),
                    
                'feiertag' => array('11:00' => '23:00')
                );

                foreach (
                $oeffnungszeiten[date('N') > 'feiertag' 'werktag'] as $oeffnen => $schliessen)
                    if (
                $zeit >= $oeffnen && $zeit $schliessen)
                        
                $geoeffnet true;

                if (
                $geoeffnet) {
                    
                // In den Oeffnungszeiten
                } else {
                    
                // Ausserhalb der Oeffnungszeiten
                }

                ?>
                Zuletzt geändert von h3ll; 29.10.2008, 00:35.

                Kommentar


                • #9
                  Original geschrieben von unset
                  Das Problem am Type Juggling von PHP ist, dass jonglieren für ungeübte schnell mal in einem heillosen Durcheinander enden kann. Und auch für erfahrene Programmierer ist es nicht Sinnvoll, sich auf die (nicht immer konsequente) kontextabhängige Typenkonvertierung von PHP zu verlassen. Ich würde hier definitiv auf Timestamps setzen!
                  Es wird hier nichts konvertiert. Es werden Strings mit Strings verglichen.

                  Kommentar


                  • #10
                    Original geschrieben von h3ll
                    Es wird hier nichts konvertiert. Es werden Strings mit Strings verglichen.
                    Naja, ich frage mich, wie ein String gegenüber einem anderen (bei gleicher länge) "größer" oder "kleiner" sein kann, als ein anderer ...
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      Unveränderliche Feiertage kann man hart kodieren, z.B. ist Neujahr immer am 1.1.
                      An Ostern ausgerichtete Feiertage kann man mit easter_date() berechnen.
                      Die beweglichen Feiertage muß man sich irgendwoher besorgen oder selbst eingeben. Ich habe auf die Schnelle keinen Webservice gefunden, aber hier könnte man es mit ein wenig PHP im iCal-Format abgreifen.

                      Kommentar


                      • #12
                        Oh Gott... mit Timestamps habe ich nun gar keine Erfahrungen...
                        Ich mache das für einen Freund um ihn einen Gefallen zu tun.

                        Mit dem Rest wie Abfrage und Ausgabe von MySQL komm ich eigentlich ganz gut klar. Sogar mit dem "Warenkorb".

                        Aber bei dem Bestellvorgang häng ich an dieser Stelle weil ich sowas bisher noch nicht gemacht habe!

                        Also hier mal die ganz blöde Frage:
                        Wie gehe ich mit timestamps um?

                        Ich hab schon bei php.net mal alles durch gelesen, komm aber mit den ganzen Ausdrücken garnicht klar

                        Somit gebe ich Dir das ich da durcheinander kommt (als Anfänger).


                        Würd mich freuen wenn mir das hier einer in Normalosprache erklären könnte

                        Danke für Eure Hilfe...
                        Leben und leben lassen

                        Kommentar


                        • #13
                          Original geschrieben von unset
                          Naja, ich frage mich, wie ein String gegenüber einem anderen (bei gleicher länge) "größer" oder "kleiner" sein kann, als ein anderer ...
                          'AAA' == 'AAA'
                          'ABC' > 'AAA'
                          'ABC' < 'CBA'

                          Jetzt verständlich?

                          Kommentar


                          • #14
                            Original geschrieben von h3ll
                            'AAA' == 'AAA'
                            'ABC' > 'AAA'
                            'ABC' < 'CBA'

                            Jetzt verständlich?
                            Schon, weiß nur nicht, was ich davon halten soll ...
                            [FONT="Helvetica"]twitter.com/unset[/FONT]

                            Shitstorm Podcast – Wöchentliches Auskotzen

                            Kommentar


                            • #15
                              Laut Tabelle "Comparison with Various Types" auf http://www.php.net/manual/en/languag...comparison.php werden Strings bei Vergleichen mit <, <=, ==, >=, > zunächst mal ins Numerische umgewandelt und dann als Zahlen verglichen. Die Umwandlung wird auf
                              http://www.php.net/manual/en/languag...ing.conversion beschrieben.

                              Für sowas sollte man besser strcmp() und Konsorten benutzen. Die arbeiten zwar anders (Abstand zu 'A'), aber das deckt sich eher mit meinem Bauchgefühl und birgt weniger Stolperfallen (Strings die mit einer Zahl oder +/- beginnen).

                              Kommentar

                              Lädt...
                              X