Eerste dag van de week
Ik ben bezig om een weekoverzicht te maken, eerste dag van de week zondag, laatste dag zaterdag.
Maar nou wil ik de datums erbij zetten.
Dus het overzicht van deze week zou dan beginnen bij Zondag 13 Mei 2007 en eindigen op Zaterdag 19 Mei 2007.
Hoe zou ik de eerste dag van de week kunnen ophalen?
alvast bedankt!
Resultaat *24*60*60
Timestamp van nu - bovenstaand
date(d-m-Y,bovenstaand)
Beetje abstract maar moet lukken toch :)?
Huh? Snap de vraag niet helemaal.
@Jan;
ik krijg daarbij:
Fatal error: Maximum execution time of 60 seconds exceeded
@Arjan;
Daarmee bereken je de eerste dag van de maand, maar niet de eerste (zon)dag van de week.
Slewey schreef op 14.05.2007 15:14:
Bedankt voor de reacties;
@Jan;
ik krijg daarbij:
Fatal error: Maximum execution time of 60 seconds exceeded
@Jan;
ik krijg daarbij:
Fatal error: Maximum execution time of 60 seconds exceeded
Oh? Vreemd, bij mij deed hij het prima. Probeer eens een ander getal dan 7?
phpversie?
@Jacco; PHP Version 5.1.4
(Hij begint vanaf maandag en niet vanaf zondag, maar dat is makkelijk aan te passen, ik heb dit reeds aangepast voor jou zodat het overzicht op zondag begint!)
Ik hoo pdat je wat hebt aan mijn code, de eerste is een function die de week bepaalt:
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
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
<?PHP
function week_limits($weeknummer, $jaar)
{
// begin datetime
$time = mktime(1, 1, 1, 1, 1, $jaar);
// Aassuring that $weeknummer is number
$weeknummer--;
// Als de eerste dag van de week niet start met zondag, date() zal "niet correct" resulteren (in dit geval de week is 0)
if (date('w', $time) == 1)
$weeknummer++;
$start_time = false;
$end_time = false;
for ($day = 1; $day <= 380; $day++)
{
if (date('W', $time) == $weeknummer && !$start_time)
$start_time = $time-24*60*60; // Start dag van de week
$day2 = $start_time+24*60*60;
$day3 = $day2+24*60*60;
$day4 = $day3+24*60*60;
$day5 = $day4+24*60*60;
$day6 = $day5+24*60*60;
if (date('W', $time - 24*60*60) == $weeknummer && !$end_time && date('W', $time) != $weeknummer)
$end_time = $time - 24*60*60 - 24*60*60; // Einde dag van de week
if ($start_time && $end_time)
break;
$time += 24*60*60;
}
return array($start_time, $day2, $day3, $day4, $day5, $day6, $end_time);
}//week_limits()
?>
function week_limits($weeknummer, $jaar)
{
// begin datetime
$time = mktime(1, 1, 1, 1, 1, $jaar);
// Aassuring that $weeknummer is number
$weeknummer--;
// Als de eerste dag van de week niet start met zondag, date() zal "niet correct" resulteren (in dit geval de week is 0)
if (date('w', $time) == 1)
$weeknummer++;
$start_time = false;
$end_time = false;
for ($day = 1; $day <= 380; $day++)
{
if (date('W', $time) == $weeknummer && !$start_time)
$start_time = $time-24*60*60; // Start dag van de week
$day2 = $start_time+24*60*60;
$day3 = $day2+24*60*60;
$day4 = $day3+24*60*60;
$day5 = $day4+24*60*60;
$day6 = $day5+24*60*60;
if (date('W', $time - 24*60*60) == $weeknummer && !$end_time && date('W', $time) != $weeknummer)
$end_time = $time - 24*60*60 - 24*60*60; // Einde dag van de week
if ($start_time && $end_time)
break;
$time += 24*60*60;
}
return array($start_time, $day2, $day3, $day4, $day5, $day6, $end_time);
}//week_limits()
?>
Je roept het als volgt aan (Laat een weten als er een fout is):
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
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
<table width="800" border="1">
<tr>
<td> </td>
<?PHP
$weeknummer = date(W); // Huidig weeknummer
$jaar = date(Y); // Huidig jaar
$array = week_limits($weeknummer, $jaar); // Array met de huidige week datum
foreach($array as $key => $datum) { // Zorgt dat de datum van de huidige week in de top row geplaatst word
echo "<td><div align=\"center\"><B>".date("l",$datum)."<br /></B>".date("d-m-Y",$datum)."<br /></div></td>";
}
?>
</tr>
<?PHP
for ($i = 0; $i <= 23; $i++) { // Verzorgt de uren links naast het rooster
?>
<tr>
<td><?php echo $i; ?>:00 - <?php echo $i+1; ?>:00 </td>
<?PHP
$array1 = week_limits1($weeknummer, $jaar); // Array met de huidige week datum
foreach($array1 as $key1 => $datum1) { // Zorgt dat de datum van de huidige week in de top row geplaatst word
// Datum in nederlands notatie
$datum_nl = date("d-m-Y",$datum1);
// Dag van de week
$dvdw = date("l",$datum1);
// Datum uitelkaar halen om te kunnen verkegelijken
list($day, $month, $year) = split("-",$datum_nl);
if($day == 01) {
$day = 1;
}
elseif($day == "02") {
$day = 2;
}
elseif($day == "03") {
$day = 3;
}
elseif($day == "04") {
$day = 4;
}
elseif($day == "05") {
$day = 5;
}
elseif($day == "06") {
$day = 6;
}
elseif($day == "07") {
$day = 7;
}
elseif($day == "08") {
$day = 8;
}
elseif($day == "09") {
$day = 9;
}
if($month == "01") {
$month = 1;
}
elseif($month == "02") {
$month = 2;
}
elseif($month == "03") {
$month = 3;
}
elseif($month == "04") {
$month = 4;
}
elseif($month == "05") {
$month = 5;
}
elseif($month == "06") {
$month = 6;
}
elseif($month == "07") {
$month = 7;
}
elseif($month == "08") {
$month = 8;
}
elseif($month == "09") {
$month = 9;
}
// Anders moet je krijgen te zien dat deze vrij is
echo "<td bgcolor=\"#66FF00\"><div align=\"center\">Hier eventueel wat je wil</div></td>";
}
?>
</tr>
<?PHP
}
?>
</table>
<tr>
<td> </td>
<?PHP
$weeknummer = date(W); // Huidig weeknummer
$jaar = date(Y); // Huidig jaar
$array = week_limits($weeknummer, $jaar); // Array met de huidige week datum
foreach($array as $key => $datum) { // Zorgt dat de datum van de huidige week in de top row geplaatst word
echo "<td><div align=\"center\"><B>".date("l",$datum)."<br /></B>".date("d-m-Y",$datum)."<br /></div></td>";
}
?>
</tr>
<?PHP
for ($i = 0; $i <= 23; $i++) { // Verzorgt de uren links naast het rooster
?>
<tr>
<td><?php echo $i; ?>:00 - <?php echo $i+1; ?>:00 </td>
<?PHP
$array1 = week_limits1($weeknummer, $jaar); // Array met de huidige week datum
foreach($array1 as $key1 => $datum1) { // Zorgt dat de datum van de huidige week in de top row geplaatst word
// Datum in nederlands notatie
$datum_nl = date("d-m-Y",$datum1);
// Dag van de week
$dvdw = date("l",$datum1);
// Datum uitelkaar halen om te kunnen verkegelijken
list($day, $month, $year) = split("-",$datum_nl);
if($day == 01) {
$day = 1;
}
elseif($day == "02") {
$day = 2;
}
elseif($day == "03") {
$day = 3;
}
elseif($day == "04") {
$day = 4;
}
elseif($day == "05") {
$day = 5;
}
elseif($day == "06") {
$day = 6;
}
elseif($day == "07") {
$day = 7;
}
elseif($day == "08") {
$day = 8;
}
elseif($day == "09") {
$day = 9;
}
if($month == "01") {
$month = 1;
}
elseif($month == "02") {
$month = 2;
}
elseif($month == "03") {
$month = 3;
}
elseif($month == "04") {
$month = 4;
}
elseif($month == "05") {
$month = 5;
}
elseif($month == "06") {
$month = 6;
}
elseif($month == "07") {
$month = 7;
}
elseif($month == "08") {
$month = 8;
}
elseif($month == "09") {
$month = 9;
}
// Anders moet je krijgen te zien dat deze vrij is
echo "<td bgcolor=\"#66FF00\"><div align=\"center\">Hier eventueel wat je wil</div></td>";
}
?>
</tr>
<?PHP
}
?>
</table>
Ik heb het wel getest en het laat een complete weekoverzicht zien met de uren van de dag.
succes ermee!
Gewijzigd op 01/01/1970 01:00:00 door Martin Meijer
Op dit moment doe ik het door de de dag van vandaag - de dag van de week
Vandaag zou dat dus zijn 14 - 1 = 13
Maar wanneer deze dus onder de 1 gaat werkt ie niet meer.
Het scriptje van Jan heb ik nog eens op een andere server getest.
Op PHP Version 4.4.0 werkt ie wel!
Op PHP Version 4.4.7-dev Niet
en op PHP Version 5.1.4 ook niet
Misschien niet de makkelijkste manier, maar het werkt voor mij!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$date = time();
$day = date('d', $date); // Dag
$weekday = date('w', $date); // Dag van de Week
$week = date('W', $date); // Week nummer
$month = date('m', $date); // Maand nummer
$year = date('Y', $date); // Jaar
$first_day = date("w", mktime(0, 0, 0, $month, 1, $year)); // Eerste dag van de maand
$total_days = date("t", mktime(0, 0, 0, $month, 1, $year)); // Aantal dagen van de maand
$get_year = mktime(0, 0, 0, 1, 1, $year);
$get_month = mktime(0, 0, 0, date('n', $get_year), date('j', $get_year)-(date('w', $get_year)-1), $year);
$get_week = mktime(0, 0, 0, date('n', $get_month), date('j', $get_month) - 7*(date('W', $get_month)-1), $year);
$monday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 0, date('Y', $get_week)));
$tuesday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 1, date('Y', $get_week)));
$wednesday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 2, date('Y', $get_week)));
$thursday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 3, date('Y', $get_week)));
$friday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 4, date('Y', $get_week)));
$saturday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 5, date('Y', $get_week)));
$sunday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 6, date('Y', $get_week)));
$day = date('d', $date); // Dag
$weekday = date('w', $date); // Dag van de Week
$week = date('W', $date); // Week nummer
$month = date('m', $date); // Maand nummer
$year = date('Y', $date); // Jaar
$first_day = date("w", mktime(0, 0, 0, $month, 1, $year)); // Eerste dag van de maand
$total_days = date("t", mktime(0, 0, 0, $month, 1, $year)); // Aantal dagen van de maand
$get_year = mktime(0, 0, 0, 1, 1, $year);
$get_month = mktime(0, 0, 0, date('n', $get_year), date('j', $get_year)-(date('w', $get_year)-1), $year);
$get_week = mktime(0, 0, 0, date('n', $get_month), date('j', $get_month) - 7*(date('W', $get_month)-1), $year);
$monday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 0, date('Y', $get_week)));
$tuesday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 1, date('Y', $get_week)));
$wednesday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 2, date('Y', $get_week)));
$thursday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 3, date('Y', $get_week)));
$friday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 4, date('Y', $get_week)));
$saturday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 5, date('Y', $get_week)));
$sunday = date('d-m-Y',mktime(0, 0, 0, date('n', $get_week), date('j', $get_week) + 7*($week-1) + 6, date('Y', $get_week)));