Moderator |
|
Bij dit soort vraagstukken is het handig eerst een soort van verkenning te doen. Kijk naar wat je aan gegevens hebt: een aantal tijdsintervallen voor specifieke dagen van de week.
Op grond van welke dag + tijd het is in combinatie met bovenstaande gegevens kun je bepalen welke boodschap je wilt tonen.
Vervolgens kies je een handige manier om de gegevens te vergelijken met de huidige datum + tijd.
Er zijn vele implementaties mogelijk. Hierbij is het natuurlijk ook zaak dat de klok + tijdszone van de webserver goed ingesteld staan. Daar vanuitgaande zou je voldoende moeten hebben aan de volgende code:
<?php
// define open hours (<day of the week> => array(<open time>, <close time>))
$openHours = array(
// closed on sunday
1 => array('08:00', '18:00'), // mon
2 => array('08:00', '17:00'), // tue
3 => array('08:00', '18:00'), // wed
4 => array('08:00', '18:00'), // thu
5 => array('08:00', '20:00'), // fri
6 => array('08:00', '17:00'), // sat
);
$open = false; // to track if we are we open
// current day and time of the week, you can insert custom values here to test functionality
$weekDay = date('w'); // current day of the week
$currentTime = date('H:i'); // current time
// check if the opening day is defined and the current time is within the opening time interval on that day
if (isset($openHours[$weekDay]) && $openHours[$weekDay][0] <= $currentTime && $currentTime <= $openHours[$weekDay][1]) {
$open = true;
}
// are we open?
if ($open) {
?><b>nu geopend</b><?php
} else {
?><b>nu gesloten</b><?php
}
?>
<?php // define open hours (<day of the week> => array(<open time>, <close time>)) // closed on sunday 1 => array('08:00', '18:00'), // mon 2 => array('08:00', '17:00'), // tue 3 => array('08:00', '18:00'), // wed 4 => array('08:00', '18:00'), // thu 5 => array('08:00', '20:00'), // fri 6 => array('08:00', '17:00'), // sat ); $open = false; // to track if we are we open // current day and time of the week, you can insert custom values here to test functionality $weekDay = date('w'); // current day of the week $currentTime = date('H:i'); // current time // check if the opening day is defined and the current time is within the opening time interval on that day if (isset($openHours[$weekDay]) && $openHours[$weekDay][0] <= $currentTime && $currentTime <= $openHours[$weekDay][1]) { $open = true; } // are we open? if ($open) { ?><b>nu geopend</b><?php } else { ?><b>nu gesloten</b><?php } ?>
Centraal in deze code is de date() functie waarmee je de huidige of een willekeurige (datum)tijd kunt formatteren. |