Ik kijk hier af en toe eens rond en probeer wel het een ander met PHP, maar ik ben wat dat betreft een ontzettende n00b. Ik zoek eigenlijk een heel simpel php scriptje waarmee ik op een site de openingstijden van het park de Efteling kan aangeven. Het is vergelijkbaar met hetgeen wat rechts op deze site staat:
http://www.walibiweb.nl/

Ik ben er wel uit dat het eventueel met een MySQL database zou moeten, dara heb ik ook beschikken over.

Is er iemand die mij hiermee kan helpen?

Bij voorbaat dank,

Laszlo
Hoeveel verschillende openingstijden heeft de Efteling? 3 toch? Maal 2 voor winter/zomer efteling?
In het zomersoen drie ja en in de winter twee.
Je bent toch niet bezig een nieuwe site te maken voor de Efteling of toch?

Ik veronderstel dat je een kleine site maakt waarin je onder andere de openingstijden van de Efteling toont.

Waar haal je de informatie over de openingsuren? Heb je die bij de hand?

Geef anders eens een lijst met de openingsuren per periode van het jaar. Zet er bij wanneer die periodes beginnen en stoppen.
Nee, ik maak een onofficiƫle site/fansite.

Openingstijden zomer 2008

21 maart tot en met 6 Juli 2008
Dagelijks van 10:00 uur tot 18:00 uur.

7 Juli tot en met 24 Augustus
Dagelijks van 10:00 uur tot 21:00 uur.
Met uitzonderingen van de zeven Zaterdagen in deze periode.
Op die Zaterdagen (12, 19, 26 juli, 2, 9, 16 en 23 augustus) van 10:00 uur tot 24:00 uur.
Sorry voor de dubbelpost, kan dus niet bewerken.

Winter 2008/2009

6, 7, 13, 14 december 2008, van 20 december 2008 t/m
4 januari 2009 (m.u.v. 1 januari 2009), 10, 11, 17, 18, 24 en 25 januari 2009.

De openingstijden op bovengenoemde data zijn van 11.00 tot 20.00 uur. Op 31 december 2008 van 11.00 tot 18.00 uur.
Bumpen:
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

Als je juist vandaag, morgen en overmorgen wil:
Als je het anders wil voorgesteld worden, zeg dan eens hoe.

<?
// periodes invullen. Je kan zelf periodes bij maken
$i = 0;
$periodes = array();
$periodes[$i]['start'] = '2008-07-07';
$periodes[$i]['stop'] = '2008-08-24';
$periodes[$i]['openingsuren'] = array("10:00", "10:00", "10:00", "10:00", "10:00", "10:00", "10:00" ); // zo, ma, di, wo, do, vr, za
$periodes[$i]['sluitingsuren'] = array("21:00", "21:00", "21:00", "21:00", "21:00", "21:00", "24:00" );
$periodes[$i]['uitzonderingen'] = array(null);
$i++;
$periodes[$i]['start'] = '2008-12-06';
$periodes[$i]['stop'] = '2008-12-14';
$periodes[$i]['openingsuren'] = array("11:00", null, null, null, null, null, "11:00" );
$periodes[$i]['sluitingsuren'] = array("20:00", null, null, null, null, null, "20:00" );
$periodes[$i]['uitzonderingen'] = array(null);
$i++;
$periodes[$i]['start'] = '2008-12-15';
$periodes[$i]['stop'] = '2009-01-04';
$periodes[$i]['openingsuren'] = array("11:00","11:00","11:00","11:00","11:00","11:00","11:00"); // zo, ma, di, wo, do, vr, za
$periodes[$i]['sluitingsuren'] = array("20:00","20:00","20:00","20:00","20:00","20:00","20:00");
$periodes[$i]['uitzonderingen'] = array();
$periodes[$i]['uitzonderingen'][0]['dag'] = "2008-12-31";
$periodes[$i]['uitzonderingen'][0]['openingsuren'] = "11:00";
$periodes[$i]['uitzonderingen'][0]['sluitingsuren'] = "18:00";
$periodes[$i]['uitzonderingen'][1]['dag'] = "2009-01-01";
$periodes[$i]['uitzonderingen'][1]['openingsuren'] = null;
$periodes[$i]['uitzonderingen'][1]['sluitingsuren'] = null;
$i++;
$periodes[$i]['start'] = '2008-12-06';
$periodes[$i]['stop'] = '2008-12-14';
$periodes[$i]['openingsuren'] = array("11:00", null, null, null, null, null, "11:00" );
$periodes[$i]['sluitingsuren'] = array("20:00", null, null, null, null, null, "20:00" );
$periodes[$i]['uitzonderingen'] = array(null);
$i++;

echo getOpeningsuren(time(), $periodes);

function getOpeningsuren($date, $periodes)
{
$resultaat = '';
$m_nu = new datum();
$m_morgen = new datum();
$m_morgen->add(0,0,1);
$m_overmorgen = new datum();
$m_overmorgen->add(0,0,2);
$openingsuur_vandaag = getOpeningsuur($m_nu, $periodes);
$openingsuur_morgen = getOpeningsuur($m_morgen, $periodes);
$openingsuur_overmorgen = getOpeningsuur($m_overmorgen, $periodes);

$resultaat = $resultaat . '<li>vandaag: '. ($openingsuur_vandaag[0] == null ? 'gesloten' : $openingsuur_vandaag[0].'u - '. $openingsuur_vandaag[1].'u') .'</li>';
$resultaat = $resultaat . '<li>morgen: '. ($openingsuur_morgen[0] == null ? 'gesloten' : $openingsuur_morgen[0].'u - '. $openingsuur_morgen[1].'u') .'</li>';
$resultaat = $resultaat . '<li>overmorgen: '. ($openingsuur_overmorgen[0] == null ? 'gesloten' : $openingsuur_overmorgen[0].'u - '. $openingsuur_overmorgen[1].'u') .'</li>';
return $resultaat;
}

function getOpeningsuur($date, $periodes)
{
$periodestart = new datum();
$periodestop = new datum();
foreach ($periodes as $periode)
{
$periodestart->setDatetime($periode["start"] ." 00:00:00");
$periodestop->setDatetime($periode["stop"] ." 00:00:00");
if ($date->getTime() < $periodestart->getTime())
continue;
if ($date->getTime() > $periodestop->getTime())
continue;
foreach ($periode['uitzonderingen'] as $uitzondering)
{
if ($date->getDate() == $uitzondering['dag'])
{
return array($uitzondering['openingsuren'], $uitzondering['sluitingsuren'] );
}
}
return array($periode['openingsuren'][ $date->dag_vd_week() ], $periode['sluitingsuren'][ $date->dag_vd_week() ] );
}
return array(null, null);
}

class datum
{
function datum( $tijd=0 )
{
($tijd ? $tijd=$tijd : $tijd = time() );
$this->dagen_kort = array("zo", "ma", "di", "wo", "do", "vr", "za" );
$this->setTime( $tijd );
}
var $jaar;
var $maand;
var $dag;
var $uur;
var $minuut;
var $seconde;
var $dagen_kort;

function setTime( $time )
{
$this->jaar = date("Y", $time);
$this->maand = date("m", $time);
$this->dag = date("d", $time);
$this->uur = date("H", $time);
$this->minuut = date("i", $time);
$this->seconde = date("s", $time);
}
function getTime()
{
return mktime($this->uur, $this->minuut, $this->seconde, $this->maand, $this->dag, $this->jaar);
}
function setDatetime($datetime) // ik ga er even van uit dat $datetime een geldige waarde bevat
{
$dt = explode (" ", $datetime);
list($this->jaar, $this->maand, $this->dag) = explode("-", $dt[0]);
list($this->uur , $this->minuut, $this->seconde) = explode(":", $dt[1]);
}
function getDate()
{
return str_pad($this->jaar, 4, "0", STR_PAD_LEFT) .'-'. str_pad($this->maand, 2, "0", STR_PAD_LEFT) .'-'. str_pad($this->dag, 2, "0", STR_PAD_LEFT);
}
function dag_vd_week()
{
return date("w", $this->getTime());
}
function setVars($jaar=-1, $maand=-1, $dag=-1, $uur=-1, $minuut=-1, $seconde=-1)
{
($jaar > -1 ? null : $this->jaar = $jaar);
($maand > -1 ? null : $this->jaar = $maand);
($dag > -1 ? null : $this->jaar = $dag);
($uur > -1 ? null : $this->jaar = $uur);
($minuut > -1 ? null : $this->jaar = $minuut);
($seconde > -1 ? null : $this->jaar = $seconde);
}
function add($jaar=0, $maand=0, $dag=0, $uur=0, $minuut=0, $seconde=0)
{
$nieuwe_tijd = mktime($this->uur + $uur, $this->minuut + $minuut, $this->seconde + $seconde, $this->maand + $maand, $this->dag + $dag, $this->jaar + $jaar);
$this->setTime($nieuwe_tijd);
}
}
?>

De waarden zijn nu manueel ingevuld. Normaal zou je dit halen uit een data base.
Nee deze manier is eigenlijk prima. Dat is eigenlijk het enige wat mensen willen weten als ze even snel kijken.

Hartstikke bedankt! :)
Is er ook een manier om bij de uitzondering een opmerking te plaatsen bijv. 1ste kerstdag of vakantie?

mijn idee van extra rij met opmerking bij uitzonderingen toevoegen hielp niet

<code>
<?
// periodes invullen. Je kan zelf periodes bij maken
$i = 0;
$periodes = array();
$periodes[$i]['start'] = '2014-01-01';
$periodes[$i]['stop'] = '2020-12-31';
$periodes[$i]['openingsuren'] = array("12:00",null,"12:00","12:00","12:00","12:00","12:00"); // zo, ma, di, wo, do, vr, za
$periodes[$i]['sluitingsuren'] = array("22:00",null,"22:00","22:00","22:00","22:00","22:00");
$periodes[$i]['uitzonderingen'] = array();
$periodes[$i]['uitzonderingen'][0]['dag'] = "2014-06-09";
$periodes[$i]['uitzonderingen'][0]['openingsuren'] = null;
$periodes[$i]['uitzonderingen'][0]['sluitingsuren'] = null;
$periodes[$i]['uitzonderingen'][0]['opmerking'] = "Ivm vakantie";
$periodes[$i]['uitzonderingen'][1]['dag'] = "2014-06-10";
$periodes[$i]['uitzonderingen'][1]['openingsuren'] = "12:00";
$periodes[$i]['uitzonderingen'][1]['sluitingsuren'] = "22:00";
$periodes[$i]['uitzonderingen'][1]['opmerking'] = "3de paasdag";
$i++;

echo getOpeningsuren(time(), $periodes);

function getOpeningsuren($date, $periodes)
{
$resultaat = '';
$m_nu = new datum();
$m_morgen = new datum();
$m_morgen->add(0,0,1);
$m_overmorgen = new datum();
$m_overmorgen->add(0,0,2);
$openingsuur_vandaag = getOpeningsuur($m_nu, $periodes);
$openingsuur_morgen = getOpeningsuur($m_morgen, $periodes);
$openingsuur_overmorgen = getOpeningsuur($m_overmorgen, $periodes);

$resultaat = $resultaat . '<p>vandaag: '. ($openingsuur_vandaag[0] == null ? 'gesloten' : $openingsuur_vandaag[0].'uur - '. $openingsuur_vandaag[1].'uur') .'</p>';
$resultaat = $resultaat . '<p>morgen: '. ($openingsuur_morgen[0] == null ? 'gesloten' : $openingsuur_morgen[0].'uur - '. $openingsuur_morgen[1].'uur') .'</p>';
$resultaat = $resultaat . '<p>overmorgen: '. ($openingsuur_overmorgen[0] == null ? 'gesloten' : $openingsuur_overmorgen[0].'uur - '. $openingsuur_overmorgen[1].'uur') .'</p>';
return $resultaat;
}

function getOpeningsuur($date, $periodes)
{
$periodestart = new datum();
$periodestop = new datum();
foreach ($periodes as $periode)
{
$periodestart->setDatetime($periode["start"] ." 00:00:00");
$periodestop->setDatetime($periode["stop"] ." 00:00:00");
if ($date->getTime() < $periodestart->getTime())
continue;
if ($date->getTime() > $periodestop->getTime())
continue;
foreach ($periode['uitzonderingen'] as $uitzondering)
{
if ($date->getDate() == $uitzondering['dag'])
{
return array($uitzondering['openingsuren'], $uitzondering['sluitingsuren'], $uitzondering['opmerking'] );
}
}
return array($periode['openingsuren'][ $date->dag_vd_week() ], $periode['sluitingsuren'][ $date->dag_vd_week() ], $periode['opmerking'][ $date->dag_vd_week() ] );
}
return array(null, null, null);
}

class datum
{
function datum( $tijd=0 )
{
($tijd ? $tijd=$tijd : $tijd = time() );
$this->dagen_kort = array("zo", "ma", "di", "wo", "do", "vr", "za" );
$this->setTime( $tijd );
}
var $jaar;
var $maand;
var $dag;
var $uur;
var $minuut;
var $seconde;
var $dagen_kort;

function setTime( $time )
{
$this->jaar = date("Y", $time);
$this->maand = date("m", $time);
$this->dag = date("d", $time);
$this->uur = date("H", $time);
$this->minuut = date("i", $time);
$this->seconde = date("s", $time);
}
function getTime()
{
return mktime($this->uur, $this->minuut, $this->seconde, $this->maand, $this->dag, $this->jaar);
}
function setDatetime($datetime) // ik ga er even van uit dat $datetime een geldige waarde bevat
{
$dt = explode (" ", $datetime);
list($this->jaar, $this->maand, $this->dag) = explode("-", $dt[0]);
list($this->uur , $this->minuut, $this->seconde) = explode(":", $dt[1]);
}
function getDate()
{
return str_pad($this->jaar, 4, "0", STR_PAD_LEFT) .'-'. str_pad($this->maand, 2, "0", STR_PAD_LEFT) .'-'. str_pad($this->dag, 2, "0", STR_PAD_LEFT);
}
function dag_vd_week()
{
return date("w", $this->getTime());
}
function setVars($jaar=-1, $maand=-1, $dag=-1, $uur=-1, $minuut=-1, $seconde=-1)
{
($jaar > -1 ? null : $this->jaar = $jaar);
($maand > -1 ? null : $this->jaar = $maand);
($dag > -1 ? null : $this->jaar = $dag);
($uur > -1 ? null : $this->jaar = $uur);
($minuut > -1 ? null : $this->jaar = $minuut);
($seconde > -1 ? null : $this->jaar = $seconde);
}
function add($jaar=0, $maand=0, $dag=0, $uur=0, $minuut=0, $seconde=0)
{
$nieuwe_tijd = mktime($this->uur + $uur, $this->minuut + $minuut, $this->seconde + $seconde, $this->maand + $maand, $this->dag + $dag, $this->jaar + $jaar);
$this->setTime($nieuwe_tijd);
}
}
?>
</code>

Reageren