Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:php_isopen

Überprüfung von Öffnungszeiten mit PHP

Mit dieser Funktion kann überprüft werden, ob z. B. ein Ladengeschäft aktuell geöffnet hat.

Beispiel-Öffnungszeiten

Wochentag Uhrzeit von Uhrzeit bis
Montag 08:00 Uhr 12:00 Uhr
Montag 14:00 Uhr 18:00 Uhr
Dienstag 08:00 Uhr 12:00 Uhr
Dienstag 14:00 Uhr 18:00 Uhr
Mittwoch 08:00 Uhr 12:00 Uhr
Donnerstag 08:00 Uhr 12:00 Uhr
Donnerstag 14:00 Uhr 18:00 Uhr
Freitag 08:00 Uhr 12:00 Uhr
Samstag 08:00 Uhr 13:00 Uhr

Definierung der Öffnungszeiten

Durch die Verwendung der Dezimal-Werte für die Wochentage können die Werte der komplexen Tabelle oben in PHP sehr vereinfacht abgebildet werden. Hier finden Sie eine Erklärung der Zusammensetzung der Dezimal-Werte.

$zeiten = [
    0 => [ 'wochentage' => 62, 'uhrzeit_von' => '08:00', 'uhrzeit_bis' => '12:00' ],
    1 => [ 'wochentage' => 22, 'uhrzeit_von' => '14:00', 'uhrzeit_bis' => '18:00' ],
    2 => [ 'wochentage' => 64, 'uhrzeit_von' => '08:00', 'uhrzeit_bis' => '13:00' ]
    ];

PHP-Funktion "isOpen"

/**
 * @param array $zeiten
 * @return bool
 */
function isOpen( array $zeiten )
{
    $today = date( "w" ); // heutiger Wochentag (0 bis 7)
    $value = pow( 2, $today ); // Potzenzwert des heutigen Wochentags
 
    foreach( $zeiten as $zeit )
    {
        if( $value & $zeit['wochentage'] ) // nur, wenn der Potzenwert in den Wochtentagen enthalten ist
        {
            $von    = explode( ':', $zeit['uhrzeit_von'] );
            $start  = mktime( $von[0], $von[1] );
 
            $bis    = explode( ':', $zeit['uhrzeit_bis'] );
            $end    = mktime( $bis[0], $bis[1] );
 
            if( time() >= $start && time() <= $end )
            {
                return true;
            }
        }
    }
 
    return false;
}

Funktionsaufruf

if( isOpen( $zeiten ) )
{
    echo "jetzt geöffnet";
}
else
{
    echo "jetzt geschlossen";
}
php/php_isopen.txt · Zuletzt geändert: 2021/01/07 15:07 von webproducer