Probleem met php variabelen
indien dit gebeurt wordt er gekeken welke dag van de week dit is (1 maandag, 2 dinsdag, ...).
deze wordt in de variabel "dagVanWeek_##" geplaatst.
De code die je hieronder ziet werkt perfect. Alleen wanneer er per toeval 2 feestdagen in de zelfde week zouden vallen treed het probleem op dat mijn variabele worden overschreven en dat enkel de laatste variabel zal worden getoond.
heeft er iemand een goede oplossing voor dit probleem ?
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
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
<?php
$dezeweek1 = date('Y/m/d'); // huidige dag
$dezeweek7 = date('Y/m/d', strtotime("+7 day")); // huidige dag + 7 dagen
if ($feestdag_15 > $dezeweek1 && $feestdag_15 < $dezeweek7){
$da15 = new DateTime($feestdag_15);
$feest_datum = $da15->format("d/m/Y");
$dagVanWeek_15 = $da15->format("N");
$is_feestdag = $dagVanWeek_15; // als feestdag = dag_van_week -> toon feestdag
}
if ($feestdag_16 > $dezeweek1 && $feestdag_16 < $dezeweek7){
$da16 = new DateTime($feestdag_16);
$feest_datum = $da16->format("d/m/Y");
$dagVanWeek_16 = $da16->format("N");
$is_feestdag = $dagVanWeek_16; // als feestdag = dag_van_week -> toon feestdag
}
if ($is_feestdag == 1) {
// Het is een feestdag
echo '<b>1:</b> feestdag maandag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 1) {
// Het is een verlofdag
echo '<b>1:</b> verlof maandag <br />';
} else {
// we zijn gewoon open.
echo '<b>1:</b> Geen feest/verlof maandag <br />';
}
if ($is_feestdag == 2) {
// Het is een feestdag
echo '<b>2:</b> feestdag dinsdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 2) {
// Het is een verlofdag
echo '<b>2:</b> verlof dinsdag <br />';
} else {
// we zijn gewoon open.
echo '<b>2:</b> Geen feest/verlof dinsdag <br />';
}
if ($is_feestdag == 3) {
// Het is een feestdag
echo '<b>3:</b> feestdag woensdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 3) {
// Het is een verlofdag
echo '<b>3:</b> verlof woensdag <br />';
} else {
// we zijn gewoon open.
echo '<b>3:</b> Geen feest/verlof woensdag <br />';
}
if ($is_feestdag == 4) {
// Het is een feestdag
echo '<b>4:</b> feestdag donderdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 4) {
// Het is een verlofdag
echo '<b>4:</b> verlof donderdag <br />';
} else {
// we zijn gewoon open.
echo '<b>4:</b> Geen feest/verlof donderdag <br />';
}
if ($is_feestdag == 5) {
// Het is een feestdag
echo '<b>5:</b> feestdag vrijdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 5) {
// Het is een verlofdag
echo '<b>5:</b> verlof vrijdag <br />';
} else {
// we zijn gewoon open.
echo '<b>5:</b> Geen feest/verlof vrijdag <br />';
}
if ($is_feestdag == 6) {
// Het is een feestdag
echo '<b>6:</b> feestdag zaterdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 6) {
// Het is een verlofdag
echo '<b>6:</b> verlof zaterdag <br />';
} else {
// we zijn gewoon open.
echo '<b>6:</b> Geen feest/verlof zaterdag <br />';
}?>
$dezeweek1 = date('Y/m/d'); // huidige dag
$dezeweek7 = date('Y/m/d', strtotime("+7 day")); // huidige dag + 7 dagen
if ($feestdag_15 > $dezeweek1 && $feestdag_15 < $dezeweek7){
$da15 = new DateTime($feestdag_15);
$feest_datum = $da15->format("d/m/Y");
$dagVanWeek_15 = $da15->format("N");
$is_feestdag = $dagVanWeek_15; // als feestdag = dag_van_week -> toon feestdag
}
if ($feestdag_16 > $dezeweek1 && $feestdag_16 < $dezeweek7){
$da16 = new DateTime($feestdag_16);
$feest_datum = $da16->format("d/m/Y");
$dagVanWeek_16 = $da16->format("N");
$is_feestdag = $dagVanWeek_16; // als feestdag = dag_van_week -> toon feestdag
}
if ($is_feestdag == 1) {
// Het is een feestdag
echo '<b>1:</b> feestdag maandag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 1) {
// Het is een verlofdag
echo '<b>1:</b> verlof maandag <br />';
} else {
// we zijn gewoon open.
echo '<b>1:</b> Geen feest/verlof maandag <br />';
}
if ($is_feestdag == 2) {
// Het is een feestdag
echo '<b>2:</b> feestdag dinsdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 2) {
// Het is een verlofdag
echo '<b>2:</b> verlof dinsdag <br />';
} else {
// we zijn gewoon open.
echo '<b>2:</b> Geen feest/verlof dinsdag <br />';
}
if ($is_feestdag == 3) {
// Het is een feestdag
echo '<b>3:</b> feestdag woensdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 3) {
// Het is een verlofdag
echo '<b>3:</b> verlof woensdag <br />';
} else {
// we zijn gewoon open.
echo '<b>3:</b> Geen feest/verlof woensdag <br />';
}
if ($is_feestdag == 4) {
// Het is een feestdag
echo '<b>4:</b> feestdag donderdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 4) {
// Het is een verlofdag
echo '<b>4:</b> verlof donderdag <br />';
} else {
// we zijn gewoon open.
echo '<b>4:</b> Geen feest/verlof donderdag <br />';
}
if ($is_feestdag == 5) {
// Het is een feestdag
echo '<b>5:</b> feestdag vrijdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 5) {
// Het is een verlofdag
echo '<b>5:</b> verlof vrijdag <br />';
} else {
// we zijn gewoon open.
echo '<b>5:</b> Geen feest/verlof vrijdag <br />';
}
if ($is_feestdag == 6) {
// Het is een feestdag
echo '<b>6:</b> feestdag zaterdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 6) {
// Het is een verlofdag
echo '<b>6:</b> verlof zaterdag <br />';
} else {
// we zijn gewoon open.
echo '<b>6:</b> Geen feest/verlof zaterdag <br />';
}?>
Gewijzigd op 13/11/2014 17:22:14 door Jaimy A
Misschien moet je je hier eens in verdiepen, kun je gelijk alle feestdagen in een array stoppen.
Zover ik weet zijn alle feestdagen dynamisch te berekenen, althans zoals wij die in Nederland kennen. De meest ingewikkelde is Pasen Maar daar heb je een standaard PHP functie voor. Hemelvaart en Pinksteren vallen een vast aantal dagen na Pasen.
http://php.net/manual/en/function.easter-days.php
voorbeeltje hoe ik het zou kunnen oplossen ??
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$Jaar = date('Y');
$dezeweek1 = date('Y/m/d'); // huidige dag
$dezeweek7 = date('Y/m/d', strtotime("+7 day")); // huidige dag + 7 dagen
$EA = easter_date($Jaar); // Paas datum
$ED = date('j', $EA); // Paas dag
$EM = date('n', $EA); // Paas maand
$EY = date('Y', $EA); // Paas jaar
$feestdag_01 = date('Y/m/d', mktime (0,0,0,1,1,$Jaar)); // Nieuwjaar
$feestdag_02 = date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 1, $EY)); // Paasmaandag
$feestdag_03 = date('Y/m/d', mktime (0,0,0,5,1,$Jaar)); // Dag van de arbeid
$feestdag_04 = date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 39, $EY)); // O.L.H. Hemelvaart
$feestdag_05 = date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 50, $EY)); // Pinkster maandag
$feestdag_06 = date('Y/m/d', mktime (0,0,0,7,21,$Jaar)); // Nationale feestdag
$feestdag_07 = date('Y/m/d', mktime (0,0,0,8,15,$Jaar)); // O.L.V. Hemelvaart
$feestdag_08 = date('Y/m/d', mktime (0,0,0,11,1,$Jaar)); // Allerheiligen
$feestdag_09 = date('Y/m/d', mktime (0,0,0,11,11,$Jaar)); // Wapenstilstand
$feestdag_10 = date('Y/m/d', mktime (0,0,0,12,25,$Jaar)); // Kerstmis
$feestdag_15 = date('Y/m/d', mktime (0,0,0,11,18,$Jaar)); // TEST
$feestdag_16 = date('Y/m/d', mktime (0,0,0,11,19,$Jaar)); // TEST
?>
$Jaar = date('Y');
$dezeweek1 = date('Y/m/d'); // huidige dag
$dezeweek7 = date('Y/m/d', strtotime("+7 day")); // huidige dag + 7 dagen
$EA = easter_date($Jaar); // Paas datum
$ED = date('j', $EA); // Paas dag
$EM = date('n', $EA); // Paas maand
$EY = date('Y', $EA); // Paas jaar
$feestdag_01 = date('Y/m/d', mktime (0,0,0,1,1,$Jaar)); // Nieuwjaar
$feestdag_02 = date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 1, $EY)); // Paasmaandag
$feestdag_03 = date('Y/m/d', mktime (0,0,0,5,1,$Jaar)); // Dag van de arbeid
$feestdag_04 = date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 39, $EY)); // O.L.H. Hemelvaart
$feestdag_05 = date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 50, $EY)); // Pinkster maandag
$feestdag_06 = date('Y/m/d', mktime (0,0,0,7,21,$Jaar)); // Nationale feestdag
$feestdag_07 = date('Y/m/d', mktime (0,0,0,8,15,$Jaar)); // O.L.V. Hemelvaart
$feestdag_08 = date('Y/m/d', mktime (0,0,0,11,1,$Jaar)); // Allerheiligen
$feestdag_09 = date('Y/m/d', mktime (0,0,0,11,11,$Jaar)); // Wapenstilstand
$feestdag_10 = date('Y/m/d', mktime (0,0,0,12,25,$Jaar)); // Kerstmis
$feestdag_15 = date('Y/m/d', mktime (0,0,0,11,18,$Jaar)); // TEST
$feestdag_16 = date('Y/m/d', mktime (0,0,0,11,19,$Jaar)); // TEST
?>
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
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
<?php
function isFeestdag($datum)
{
$year = $datum->format('Y');
$pasen = new DateTime(date('M-d-Y', easter_date($year)));
$feestdagen = array(
'Nieuwjaar' => $datum->format('01-01-Y'),
'Eerste Paasdag' => $pasen->format('d-m-Y'),
'Tweede Paasdag' => $pasen->add(new DateInterval('P1D'))->format('d-m-Y'),
'Hemelvaart' => $pasen->add(new DateInterval('P38D'))->format('d-m-Y'),
'Eerste Pinksterdag' => $pasen->add(new DateInterval('P10D'))->format('d-m-Y'),
'Tweede Pinksterdag' => $pasen->add(new DateInterval('P1D'))->format('d-m-Y'),
'Eerste Kerstdag' => $datum->format('25-12-Y'),
'Tweede Kerstdag' => $datum->format('26-12-Y'),
);
return array_search($datum->format('d-m-Y'), $feestdagen);
}
// stappen van 1 dag
$oneDay = new DateInterval('P1D');
// startdatum
$datum = new DateTime();
// aantal dagen dat we vooruit willen kijken
$days = 365;
for($i = 0 ; $i < $days ; $i++)
{
echo $datum->format('D d M Y');
if($feestdag = isFeestdag($datum))
echo ' ==> ' . $feestdag;
echo '<br>';
$datum->add($oneDay);
}
?>
function isFeestdag($datum)
{
$year = $datum->format('Y');
$pasen = new DateTime(date('M-d-Y', easter_date($year)));
$feestdagen = array(
'Nieuwjaar' => $datum->format('01-01-Y'),
'Eerste Paasdag' => $pasen->format('d-m-Y'),
'Tweede Paasdag' => $pasen->add(new DateInterval('P1D'))->format('d-m-Y'),
'Hemelvaart' => $pasen->add(new DateInterval('P38D'))->format('d-m-Y'),
'Eerste Pinksterdag' => $pasen->add(new DateInterval('P10D'))->format('d-m-Y'),
'Tweede Pinksterdag' => $pasen->add(new DateInterval('P1D'))->format('d-m-Y'),
'Eerste Kerstdag' => $datum->format('25-12-Y'),
'Tweede Kerstdag' => $datum->format('26-12-Y'),
);
return array_search($datum->format('d-m-Y'), $feestdagen);
}
// stappen van 1 dag
$oneDay = new DateInterval('P1D');
// startdatum
$datum = new DateTime();
// aantal dagen dat we vooruit willen kijken
$days = 365;
for($i = 0 ; $i < $days ; $i++)
{
echo $datum->format('D d M Y');
if($feestdag = isFeestdag($datum))
echo ' ==> ' . $feestdag;
echo '<br>';
$datum->add($oneDay);
}
?>
Gewijzigd op 14/11/2014 14:54:02 door Frank Nietbelangrijk
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$Jaar = date('Y');
$dezeweek1 = date('Y/m/d'); // huidige dag
$dezeweek7 = date('Y/m/d', strtotime("+7 day")); // huidige dag + 7 dagen
$EA = easter_date($Jaar); // Paas datum
$ED = date('j', $EA); // Paas dag
$EM = date('n', $EA); // Paas maand
$EY = date('Y', $EA); // Paas jaar
$feestdag = array(
date('Y/m/d', mktime (0,0,0,1,1,$Jaar)), // Nieuwjaar
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 1, $EY)), // Paasmaandag
date('Y/m/d', mktime (0,0,0,5,1,$Jaar)), // Dag van de arbeid
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 39, $EY)), // O.L.H. Hemelvaart
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 50, $EY)), // Pinkster maandag
date('Y/m/d', mktime (0,0,0,7,21,$Jaar)), // Nationale feestdag
date('Y/m/d', mktime (0,0,0,8,15,$Jaar)), // O.L.V. Hemelvaart
date('Y/m/d', mktime (0,0,0,11,1,$Jaar)), // Allerheiligen
date('Y/m/d', mktime (0,0,0,11,11,$Jaar)), // Wapenstilstand
date('Y/m/d', mktime (0,0,0,12,25,$Jaar)), // Kerstmis
date('Y/m/d', mktime (0,0,0,11,18,$Jaar)), // TEST
date('Y/m/d', mktime (0,0,0,11,19,$Jaar)), // TEST
);
?>
$Jaar = date('Y');
$dezeweek1 = date('Y/m/d'); // huidige dag
$dezeweek7 = date('Y/m/d', strtotime("+7 day")); // huidige dag + 7 dagen
$EA = easter_date($Jaar); // Paas datum
$ED = date('j', $EA); // Paas dag
$EM = date('n', $EA); // Paas maand
$EY = date('Y', $EA); // Paas jaar
$feestdag = array(
date('Y/m/d', mktime (0,0,0,1,1,$Jaar)), // Nieuwjaar
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 1, $EY)), // Paasmaandag
date('Y/m/d', mktime (0,0,0,5,1,$Jaar)), // Dag van de arbeid
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 39, $EY)), // O.L.H. Hemelvaart
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 50, $EY)), // Pinkster maandag
date('Y/m/d', mktime (0,0,0,7,21,$Jaar)), // Nationale feestdag
date('Y/m/d', mktime (0,0,0,8,15,$Jaar)), // O.L.V. Hemelvaart
date('Y/m/d', mktime (0,0,0,11,1,$Jaar)), // Allerheiligen
date('Y/m/d', mktime (0,0,0,11,11,$Jaar)), // Wapenstilstand
date('Y/m/d', mktime (0,0,0,12,25,$Jaar)), // Kerstmis
date('Y/m/d', mktime (0,0,0,11,18,$Jaar)), // TEST
date('Y/m/d', mktime (0,0,0,11,19,$Jaar)), // TEST
);
?>
$feestdag[0] is dan nieuwjaar, etc.
En als je dezelfde nummering wilt aanhouden als in je eigen voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$feestdag = array(
1 => date('Y/m/d', mktime (0,0,0,1,1,$Jaar)), // Nieuwjaar
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 1, $EY)), // Paasmaandag
date('Y/m/d', mktime (0,0,0,5,1,$Jaar)), // Dag van de arbeid
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 39, $EY)), // O.L.H. Hemelvaart
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 50, $EY)), // Pinkster maandag
date('Y/m/d', mktime (0,0,0,7,21,$Jaar)), // Nationale feestdag
date('Y/m/d', mktime (0,0,0,8,15,$Jaar)), // O.L.V. Hemelvaart
date('Y/m/d', mktime (0,0,0,11,1,$Jaar)), // Allerheiligen
date('Y/m/d', mktime (0,0,0,11,11,$Jaar)), // Wapenstilstand
date('Y/m/d', mktime (0,0,0,12,25,$Jaar)), // Kerstmis
15 => date('Y/m/d', mktime (0,0,0,11,18,$Jaar)), // TEST
date('Y/m/d', mktime (0,0,0,11,19,$Jaar)), // TEST
);
print_r($feestdag);
?>
$feestdag = array(
1 => date('Y/m/d', mktime (0,0,0,1,1,$Jaar)), // Nieuwjaar
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 1, $EY)), // Paasmaandag
date('Y/m/d', mktime (0,0,0,5,1,$Jaar)), // Dag van de arbeid
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 39, $EY)), // O.L.H. Hemelvaart
date('Y/m/d', mktime (0, 0, 0, $EM, $ED + 50, $EY)), // Pinkster maandag
date('Y/m/d', mktime (0,0,0,7,21,$Jaar)), // Nationale feestdag
date('Y/m/d', mktime (0,0,0,8,15,$Jaar)), // O.L.V. Hemelvaart
date('Y/m/d', mktime (0,0,0,11,1,$Jaar)), // Allerheiligen
date('Y/m/d', mktime (0,0,0,11,11,$Jaar)), // Wapenstilstand
date('Y/m/d', mktime (0,0,0,12,25,$Jaar)), // Kerstmis
15 => date('Y/m/d', mktime (0,0,0,11,18,$Jaar)), // TEST
date('Y/m/d', mktime (0,0,0,11,19,$Jaar)), // TEST
);
print_r($feestdag);
?>
Er wordt een week kalender getoond en wanneer er binnen de 7 dagen een feestdag is wordt de bijvoorbeeld maandag verandert naar "gesloten wegens feestdag" wanneer maandag gepasseerd is verdwijnt die melding en komen onze openinsuren weer te voorschijn.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if ($is_feestdag == 1) {
// Het is een feestdag
echo '<b>1:</b> feestdag maandag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 1) {
// Het is een verlofdag
echo '<b>1:</b> verlof maandag <br />';
} else {
// we zijn gewoon open.
echo '<b>1:</b> Geen feest/verlof maandag <br />';
}
if ($is_feestdag == 2) {
// Het is een feestdag
echo '<b>2:</b> feestdag dinsdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 2) {
// Het is een verlofdag
echo '<b>2:</b> verlof dinsdag <br />';
} else {
// we zijn gewoon open.
echo '<b>2:</b> Geen feest/verlof dinsdag <br />';
}
?>
if ($is_feestdag == 1) {
// Het is een feestdag
echo '<b>1:</b> feestdag maandag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 1) {
// Het is een verlofdag
echo '<b>1:</b> verlof maandag <br />';
} else {
// we zijn gewoon open.
echo '<b>1:</b> Geen feest/verlof maandag <br />';
}
if ($is_feestdag == 2) {
// Het is een feestdag
echo '<b>2:</b> feestdag dinsdag '.$feest_datum.'<br />';
} else if ($is_verlofdag == 2) {
// Het is een verlofdag
echo '<b>2:</b> verlof dinsdag <br />';
} else {
// we zijn gewoon open.
echo '<b>2:</b> Geen feest/verlof dinsdag <br />';
}
?>
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
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
<?php
function isFeestdag($datum)
{
$year = $datum->format('Y');
$pasen = new DateTime(date('M-d-Y', easter_date($year)));
$feestdagen = array(
'Nieuwjaar' => $datum->format('01-01-Y'),
'Eerste Paasdag' => $pasen->format('d-m-Y'),
'Tweede Paasdag' => $pasen->add(new DateInterval('P1D'))->format('d-m-Y'),
'Hemelvaart' => $pasen->add(new DateInterval('P38D'))->format('d-m-Y'),
'Eerste Pinksterdag' => $pasen->add(new DateInterval('P10D'))->format('d-m-Y'),
'Tweede Pinksterdag' => $pasen->add(new DateInterval('P1D'))->format('d-m-Y'),
'Eerste Kerstdag' => $datum->format('25-12-Y'),
'Tweede Kerstdag' => $datum->format('26-12-Y'),
);
return array_search($datum->format('d-m-Y'), $feestdagen);
}
function isVerlofdag($datum)
{
$year = $datum->format('Y');
$verlofdagen = array(
'Allerheiligen' => $datum->format('01-11-Y'),
);
return array_search($datum->format('d-m-Y'), $verlofdagen);
}
// stappen van 1 dag
$oneDay = new DateInterval('P1D');
// startdatum
$datum = new DateTime();
// aantal dagen dat we vooruit willen kijken
$days = 365;
$dagnamen = array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
for($i = 0 ; $i < $days ; $i++)
{
if(isFeestdag($datum)) {
// Het is een feestdag
echo '<b>1:</b> feestdag '.$dagnamen[$datum->format('w')].' '.$datum->format('d m Y').'<br />';
} else if (isVerlofdag($datum)) {
// Het is een verlofdag
echo '<b>1:</b> verlof '.$dagnamen[$datum->format('w')].' <br />';
} else {
// we zijn gewoon open.
echo '<b>1:</b> Geen feest/verlof '.$dagnamen[$datum->format('w')].' <br />';
}
$datum->add($oneDay);
}
?>
function isFeestdag($datum)
{
$year = $datum->format('Y');
$pasen = new DateTime(date('M-d-Y', easter_date($year)));
$feestdagen = array(
'Nieuwjaar' => $datum->format('01-01-Y'),
'Eerste Paasdag' => $pasen->format('d-m-Y'),
'Tweede Paasdag' => $pasen->add(new DateInterval('P1D'))->format('d-m-Y'),
'Hemelvaart' => $pasen->add(new DateInterval('P38D'))->format('d-m-Y'),
'Eerste Pinksterdag' => $pasen->add(new DateInterval('P10D'))->format('d-m-Y'),
'Tweede Pinksterdag' => $pasen->add(new DateInterval('P1D'))->format('d-m-Y'),
'Eerste Kerstdag' => $datum->format('25-12-Y'),
'Tweede Kerstdag' => $datum->format('26-12-Y'),
);
return array_search($datum->format('d-m-Y'), $feestdagen);
}
function isVerlofdag($datum)
{
$year = $datum->format('Y');
$verlofdagen = array(
'Allerheiligen' => $datum->format('01-11-Y'),
);
return array_search($datum->format('d-m-Y'), $verlofdagen);
}
// stappen van 1 dag
$oneDay = new DateInterval('P1D');
// startdatum
$datum = new DateTime();
// aantal dagen dat we vooruit willen kijken
$days = 365;
$dagnamen = array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
for($i = 0 ; $i < $days ; $i++)
{
if(isFeestdag($datum)) {
// Het is een feestdag
echo '<b>1:</b> feestdag '.$dagnamen[$datum->format('w')].' '.$datum->format('d m Y').'<br />';
} else if (isVerlofdag($datum)) {
// Het is een verlofdag
echo '<b>1:</b> verlof '.$dagnamen[$datum->format('w')].' <br />';
} else {
// we zijn gewoon open.
echo '<b>1:</b> Geen feest/verlof '.$dagnamen[$datum->format('w')].' <br />';
}
$datum->add($oneDay);
}
?>
nu de code die ik hierboven krijg heb ik al een beetje aangepast
waardoor er maar 7 dagen worden weergeven
wat ik krijg als output van uw code:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
1: Geen feest/verlof Vrijdag
1: Geen feest/verlof Zaterdag
1: Geen feest/verlof Zondag
1: Geen feest/verlof Maandag
1: Geen feest/verlof Dinsdag
1: Geen feest/verlof Woensdag
1: feestdag Donderdag 20 11 2014
1: Geen feest/verlof Zaterdag
1: Geen feest/verlof Zondag
1: Geen feest/verlof Maandag
1: Geen feest/verlof Dinsdag
1: Geen feest/verlof Woensdag
1: feestdag Donderdag 20 11 2014
geen idee hoe ik hier verder aan moet sleutelen ik ben wat aan het rond zoeken op het internet maar ik wordt er niet wijzer uit.
In stapjes:
1. datum van afgelopen maandag bepalen.
2. openingstijden inlezen (kan uit een config file, of database)
3. Kijken of het een feestdag betreft. zo ja openingstijden overschrijven
4. Kijken of het een verlofdag betreft. zo ja openingsrijden overschrijven
5. Output genereren
(Ik krijg een beetje het gevoel of je het lekker door ons laat oplossen dus ga eerst zelf maar even proberen)
Kleine opmerking, wat redelijk makkelijk kan met een IF-statement die kijkt naar de huidige dag: op zaterdag en zondag wil je NIET naar AFGELOPEN maandag kijken, maar vanaf KOMENDE maandag (dus: komende week).
Er klopt nog steeds iets niet iemand die even naar deze code stukje kan kijken aub
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
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
<?php
$feestdag = $_GET["id"];
$DagenConfig = array(
"Feest_1" => array(
"Datum" => "01/01/2015"
"Weekdag" => "1"
),
"Feest_2" => array(
"Datum" => "01/01/2015"
"Weekdag" => "1"
)
);
$output = '';
if ($DagenConfig[$feestdag]) {
$config = $DagenConfig[$feestdag];
$output .= 'Datum' . $config["Datum"];
$output .= 'Weekdag' . $config["Weekdag"];
} else {
$output = "Error";
}
echo $output;
?>
$feestdag = $_GET["id"];
$DagenConfig = array(
"Feest_1" => array(
"Datum" => "01/01/2015"
"Weekdag" => "1"
),
"Feest_2" => array(
"Datum" => "01/01/2015"
"Weekdag" => "1"
)
);
$output = '';
if ($DagenConfig[$feestdag]) {
$config = $DagenConfig[$feestdag];
$output .= 'Datum' . $config["Datum"];
$output .= 'Weekdag' . $config["Weekdag"];
} else {
$output = "Error";
}
echo $output;
?>
Bij regels 7 en 12 moet er een komma achter.
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?php
$Jaar = date('Y'); // Jaar
$dezeweek1 = date('Y/m/d'); // huidige dag
$dezeweek7 = date('Y/m/d', strtotime("+7 day")); // huidige dag + 7 dagen
// Toewijzing feestdagen
$feestdag_15 = date('Y/m/d', mktime (0,0,0,11,24,$Jaar)); // Test 15
$feestdag_16 = date('Y/m/d', mktime (0,0,0,11,25,$Jaar)); // Test 16
$F15 = new DateTime($feestdag_15); // Voorbereiding omzetten naar numeriek weekdag
$F16 = new DateTime($feestdag_16); // Voorbereiding omzetten naar numeriek weekdag
if ($feestdag_15 > $dezeweek1 && $feestdag_15 < $dezeweek7){ // Feestdag deze week ?
$feestDag[$F15->format("N")] = // Toewijzing week nummer (1: MA, 2: DI, 3: WOE, ...)
array("datum" => $F15->format("d/m/Y")); // Weergave welke datum we gesloten zijn.
}
if ($feestdag_16 > $dezeweek1 && $feestdag_16 < $dezeweek7){ // Feestdag deze week ?
$feestDag[$F16->format("N")] = // Toewijzing week nummer (1: MA, 2: DI, 3: WOE, ...)
array("datum" => $F16->format("d/m/Y")); // Weergave welke datum we gesloten zijn.
}
?>
<!DOCTYPE html>
<html lang="nl"><head><meta charset="utf-8">
<title>Openingsuren - Test</title>
<style>
#containerOpening {
width: 530px;
}
body {background:#fff;font-family:Arial, Helvetica, sans-serif;font-size:100%;line-height:1.25em;color:#4e4e4e;}
.rowWeekdag { color: rgba(0,0,0,1.00); font-size: 12px; float: left; width: 70px; }
.rowUurLeft { color: rgba(0,0,0,1.00); font-size: 12px; float: left; width: 70px; }
.rowUurImageOpen { background:url(http://fietsendezwaluw.be/images/openingsuren/new_tijdlijn.gif) no-repeat; width: 240px; }
.rowUurImageGesloten { background:url(http://fietsendezwaluw.be/images/openingsuren/new_tijdlijn_sluiting.gif) no-repeat; width: 240px; }
.rowUurRight { color: rgba(0,0,0,1.00); font-size: 12px; float: left; width: 70px; }
</style>
</head>
<div id="containerOpening">
<div style="float:left"><img src="http://fietsendezwaluw.be/images/openingsuren/schaduwlinks.jpg" height="250" alt="" /></div>
<div style="float:right"><img src="http://fietsendezwaluw.be/images/openingsuren/schaduwrecht.jpg" height="250" alt="" /></div>
<table style="width:490px; height:250px; border:0;">
<?php
if ($feestDag['1']) {
$config = $feestDag['1'];
echo '<tr>
<td rowspan="7" width="10"> </td>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td rowspan="7" width="10"> </td>
<td class="rowWeekdag">Maandag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['2']) {
$config = $feestDag["2"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Dinsdag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['3']) {
$config = $feestDag["3"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Woensdag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['4']) {
$config = $feestDag["4"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Donderdag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['5']) {
$config = $feestDag["5"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Vrijdag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['6']) {
$config = $feestDag["6"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">17:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Zaterdag</td>
<td class="rowUurLeft">09:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">17:00</td>
</tr>';
}
if ($feestDag['7']) {
$config = $feestDag["7"];
echo '<tr>
<td class="rowWeekdag">Zondag</td>
<td class="rowUurLeft">Gesloten</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight"></td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Zondag</td>
<td class="rowUurLeft">Gesloten</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight"></td>
</tr>';
}
?>
</table>
</div>
$Jaar = date('Y'); // Jaar
$dezeweek1 = date('Y/m/d'); // huidige dag
$dezeweek7 = date('Y/m/d', strtotime("+7 day")); // huidige dag + 7 dagen
// Toewijzing feestdagen
$feestdag_15 = date('Y/m/d', mktime (0,0,0,11,24,$Jaar)); // Test 15
$feestdag_16 = date('Y/m/d', mktime (0,0,0,11,25,$Jaar)); // Test 16
$F15 = new DateTime($feestdag_15); // Voorbereiding omzetten naar numeriek weekdag
$F16 = new DateTime($feestdag_16); // Voorbereiding omzetten naar numeriek weekdag
if ($feestdag_15 > $dezeweek1 && $feestdag_15 < $dezeweek7){ // Feestdag deze week ?
$feestDag[$F15->format("N")] = // Toewijzing week nummer (1: MA, 2: DI, 3: WOE, ...)
array("datum" => $F15->format("d/m/Y")); // Weergave welke datum we gesloten zijn.
}
if ($feestdag_16 > $dezeweek1 && $feestdag_16 < $dezeweek7){ // Feestdag deze week ?
$feestDag[$F16->format("N")] = // Toewijzing week nummer (1: MA, 2: DI, 3: WOE, ...)
array("datum" => $F16->format("d/m/Y")); // Weergave welke datum we gesloten zijn.
}
?>
<!DOCTYPE html>
<html lang="nl"><head><meta charset="utf-8">
<title>Openingsuren - Test</title>
<style>
#containerOpening {
width: 530px;
}
body {background:#fff;font-family:Arial, Helvetica, sans-serif;font-size:100%;line-height:1.25em;color:#4e4e4e;}
.rowWeekdag { color: rgba(0,0,0,1.00); font-size: 12px; float: left; width: 70px; }
.rowUurLeft { color: rgba(0,0,0,1.00); font-size: 12px; float: left; width: 70px; }
.rowUurImageOpen { background:url(http://fietsendezwaluw.be/images/openingsuren/new_tijdlijn.gif) no-repeat; width: 240px; }
.rowUurImageGesloten { background:url(http://fietsendezwaluw.be/images/openingsuren/new_tijdlijn_sluiting.gif) no-repeat; width: 240px; }
.rowUurRight { color: rgba(0,0,0,1.00); font-size: 12px; float: left; width: 70px; }
</style>
</head>
<div id="containerOpening">
<div style="float:left"><img src="http://fietsendezwaluw.be/images/openingsuren/schaduwlinks.jpg" height="250" alt="" /></div>
<div style="float:right"><img src="http://fietsendezwaluw.be/images/openingsuren/schaduwrecht.jpg" height="250" alt="" /></div>
<table style="width:490px; height:250px; border:0;">
<?php
if ($feestDag['1']) {
$config = $feestDag['1'];
echo '<tr>
<td rowspan="7" width="10"> </td>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td rowspan="7" width="10"> </td>
<td class="rowWeekdag">Maandag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['2']) {
$config = $feestDag["2"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Dinsdag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['3']) {
$config = $feestDag["3"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Woensdag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['4']) {
$config = $feestDag["4"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Donderdag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['5']) {
$config = $feestDag["5"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Vrijdag</td>
<td class="rowUurLeft">09:00-12:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">13:00-18:00</td>
</tr>';
}
if ($feestDag['6']) {
$config = $feestDag["6"];
echo '<tr>
<td class="rowWeekdag">'.$config['datum'].'</td>
<td class="rowUurLeft">09:00</td>
<td class="rowUurImageGesloten"> </td>
<td class="rowUurRight">17:00</td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Zaterdag</td>
<td class="rowUurLeft">09:00</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight">17:00</td>
</tr>';
}
if ($feestDag['7']) {
$config = $feestDag["7"];
echo '<tr>
<td class="rowWeekdag">Zondag</td>
<td class="rowUurLeft">Gesloten</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight"></td>
</tr>';
} else {
echo '<tr>
<td class="rowWeekdag">Zondag</td>
<td class="rowUurLeft">Gesloten</td>
<td class="rowUurImageOpen"> </td>
<td class="rowUurRight"></td>
</tr>';
}
?>
</table>
</div>
Gewijzigd op 20/11/2014 15:56:30 door Jaimy A