Voor een site wil ik een makkelijke agenda maken met tijd-tabel. Indien er iets in de agenda staat wil ik dit uiteraard weergeven. Om de tijd-tabel te maken gebruik ik de volgende functie
Vervolgens haal ik uit mijn database alle reserveringen op een bepaalde dag. In de database staat de begin- en eind-tijd van de reservering vermeld. Deze reserveringen geef ik op de volgende manier weer in de tijd-tabel
Het probleem is echter dat alles tot de eind-tijd nu de class reservation krijgt. De <= vergelijking gaat prima, maar om een 1 of andere reden worden ook alle tijden vóór de begintijd als gereserveerd aangegeven. Ik heb ook het volgende al geprobeerd, maar zonder resultaat
Ik begrijp even niet waarom de boel nu niet werkt. Kijk ik nu niet goed ofzo?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| function create_time_range($start, $end, $by='30 mins') { $start_time = strtotime($start); $end_time = strtotime($end); $times = array(); for ( ;$start_time < $end_time; ) { $times[] = $start_time; $start_time = strtotime('+'.$by, $start_time); } $times[] = $start_time; return $times; } |
Vervolgens haal ik uit mijn database alle reserveringen op een bepaalde dag. In de database staat de begin- en eind-tijd van de reservering vermeld. Deze reserveringen geef ik op de volgende manier weer in de tijd-tabel
PHP:
1
2
3
4
5
6
7
8
9
| $times = create_time_range('10:00', '20:00', '30 mins'); foreach ($times as $key => $time) { if(date('H:i', $times[$key]) >= $show['r_type_start'] && date('H:i', $times[$key]) <= $show['r_tijd_eind']){ echo("\t\t<tr id=\"time".str_replace(":","-",date('H:i', $times[$key]))."\" class=\"reservation\">\n\t\t\t<td>".date('H:i', $times[$key])."</td>\n\t\t\t<td>".$show['r_type']."</td>\n\t\t</tr>\n"); }else{ echo("\t\t<tr id=\"time".str_replace(":","-",date('H:i', $times[$key]))."\">\n\t\t\t<td>".date('H:i', $times[$key])."</td>\n\t\t\t<td>Foe</td>\n\t\t</tr>\n"); } } |
Het probleem is echter dat alles tot de eind-tijd nu de class reservation krijgt. De <= vergelijking gaat prima, maar om een 1 of andere reden worden ook alle tijden vóór de begintijd als gereserveerd aangegeven. Ik heb ook het volgende al geprobeerd, maar zonder resultaat
PHP:
1
| if(date('Hi', $times[$key]) >= str_replace(":","",$show['r_type_start']) && date('Hi', $times[$key]) <= str_replace(":","",$show['r_tijd_eind'])){ |
Ik begrijp even niet waarom de boel nu niet werkt. Kijk ik nu niet goed ofzo?