Felix Riesterer: PHP Date Prüfen

Beitrag lesen

Lieber mixmastertobsi,

Ich habe es mit strtotime("Tuesday 18:00:00")); probiert,

das ist vernünftig. Damit bekommst Du einen Zahlenwert (Anzahl Sekunden seit 1.1.1970), den Du vergleichen kannst.

allerdings kann ich damit ja immer nur einen Wochentag abfragen.

Nein, einen Zeitpunkt. Du willst ein Zeitfenster prüfen:

$time_window = array(
    'start' => strtotime('Tuesday 18:00:00'),
    'end' => strtotime('Tuesday 23:59:59')
);

$now = time();

if ($now >= $time_window['start']
    && // AND-Operator
    $now <= $time_window['end']
) {
    // OK!
} else {
    // verfallen
}

Wenn Du eine Liste (Array) an Zeitfenstern prüfen möchtest, dann macht man das so:

$time_windows = array(
    array(
        'start' => strtotime('Tuesday 18:00:00'),
        'end' => strtotime('Tuesday 23:59:59')
    ),
    array(
        'start' => strtotime('Friday 18:00:00'),
        'end' => strtotime('Sunday 23:59:59')
    )
);

$now = time();

// Wir gehen davon aus, dass alles passt.
$ok = true; // Eine solche Variable nennt man "Flag".

foreach ($time_windows as $window) {

    if ($now < $window ['start']
        || // OR-Operator
        $now > $window['end']
    ) {
        $ok = false; // Oops, passt wohl doch nicht.
    }
}

// Flag prüfen
if ($ok) {
    // OK!
} else {
    // verfallen
}

Liebe Grüße,

Felix Riesterer.