Eigene Wochenunterteilung mit PHP

paulee

Erfahrenes Mitglied
Hallo :)

Ich hab wieder einmal ein Problem, und zwar will ich für meine Eltern, die ein großes Hotel betreiben und viele Buchungen etc. durchführen müssen, eine PHP- Software schreiben. Eine Hotelsoftware.
Ich will dies deswegen machen, da zugleich auf der Website man zukünftig eine Buchung vornehmen können soll, und über ein Admin- Interface sollte man alle Buchungen einsehen können!

Nun mein Problem:
Im Hotel gibt es 2 Monate Sommerpause und es öffnet mit 11. September, manchmal eine - zwei Wochen früher (dies wechselt von Jahr zu Jahr...). Ich will das ab der Öffnungszeit ein Zähler beginnt die Wochen zu zählen. Im Jahr gibt es 52 Wochen , ... somit wäre der September bei Woche 30 bzw. später ... In meinem Programm soll es nun so aussehen, dass ab Öffnungsbeginn ab Woche 1 gezählt wird.
Sprich: 11.09 - 17.09 = 1. Woche
18.09 - 24.09 = 2. Woche
etc.

Habe da schon mal etwas mit Arrays probiert, aber da muss ich jede Woche manuell eintragen (siehe Code).

PHP:
$wochen = array(
    'Woche 1' => array('beginn' => '11.09.2006', 'ende' => '17.09.2006'),
    'Woche 2' => array('beginn' => '18.09.2006', 'ende' => '24.09.2006'),
    'Woche 3' => array('beginn' => '25.09.2006', 'ende' => '01.10.2006'),
    'Woche 4' => array('beginn' => '02.10.2006', 'ende' => '08.10.2006'),
    // usw.

Da ich davon ausgehe, dass unser Hotel noch ein paar Jahre geöffnet bleiben wird ;) , wird der Code mit der Zeit lang, und außerdem ist die manuelle Eintragung jeder Woche etwas anstrengend bzw. unnötige Arbeit.
Habe schon mit kleinen automatismen herumprobiert, aber leider funktioniert das alles nicht.

Hätte da wer ein Script für mich? , dass die Arbeit automatisch übernimmt. Der Zählprozess sollte mit 7.Juli aufhören ,und dann ab 11.September / 4. September neu zu zählen beginnen.

Es wäre wirklich sehr nett, könnte mir einer dabei helfen, komme leider nicht weiter :(

Danke im Vorraus!
 
Hallo!
Eine kleine Idee die ich gerade hatte:
Du nimmst den Timestamp aus der Woche die du überprüfen willst, ziehst den Timestamp der Eröffnung ab und teilst durch die Sekunden einer Woche. So solltest du deine Wochenanzahl hinbekommen. Aber ob das eine elegante Lösung ist, ist eine andere Frage :-)
 
Danke für deine Antwort, leider hilft mir dein Tipp nicht weiter mit den Timestamps, da ich aktiv mit den Datums-Angaben arbeite bzw. das Script im Hintergrund.
 
Halöle.
PHP:
<?php

function ErstelleWochenArray($Oeffnugsdatum)
{
	date_default_timezone_set("Europe/Berlin");
	$Oeffnugsdatum=strtotime($Oeffnugsdatum);
	For($WochenNummer=1;$WochenNummer<60;$WochenNummer++)
	{
		$Woche[$WochenNummer]["beginn"]=date("d.m.y",$Oeffnugsdatum+$WochenNummer*604800-604800);
		$Woche[$WochenNummer]["ende"]=date("d.m.y",$Oeffnugsdatum+$WochenNummer*604800+$WochenNummer*518400-604800);
	}
	Return $Woche;
}

 print_r(ErstelleWochenArray("11.9.06"));
?>
Das Script geht momentan noch davon aus das die Eröffnung immer an einem Montag stattfindet. Eine woche ist dann von Montag bis Sonntag. Array Beginnt bei Woche[1]. Sollte die Eröffnung länger als 1 Jahr dauern, kannst du die Abbruchbedingung der Schleife ändern. Ich bin damit allerdings noch nicht so ganz zufrieden und werde vieleicht noch heute Nacht etwas besseres nachreichen.:p
 
Ich danke dir sehr!! Werde bis morgen noch warten bevor ich das einbaue, werde auch nachdenken, ob mir auch noch was dazu einfällt .! Ich danke dir jedenfalls sehr
 
Zurück