[zoek] Openingstijden script
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
Gewijzigd op 01/01/1970 01:00:00 door 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.
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.
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.
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::
Gewijzigd op 01/01/1970 01:00:00 door laszlo
Als je het anders wil voorgesteld worden, zeg dan eens hoe.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?
// 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);
}
}
?>
// 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.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
mijn idee van extra rij met opmerking bij uitzonderingen toevoegen hielp niet
<code>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?
// 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);
}
}
?>
// 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>
Gewijzigd op 09/06/2014 16:15:19 door Davey Sonneveld