Hallo liebes Forum,
ich versuche derzeit eine Ausgabe von Lieferzeiten zu programmieren und komme einfach nicht weiter. Die Funktion ist mittlerweile so komplex geworden, dass ich den überblick verliere. Ich hoffe, dass mir einer von euch weiterhelfen kann.
Zum Problem:
Ich habe mehrere Shops auf einer Seite mit unterschiedlichen Lieferzeiten. Die Lieferzeiten können folgendermaßen aussehen:
11.30 -16.00 & 18.00-20.00 Uhr
11.45-22.00 Uhr
9.30 - 03.45 Uhr
8.30 - 12.45 & 14.40 - 04.00
Es gibt also 4 verschiedene möglichkeiten.
ich möchte nun das meine Funktion die derzeitige Uhrzeit nimmt und prüft,
zu welchen Zeiten geliefert werden kann. Dabei soll sich die Uhrzeit um 15 min erhöhen. zu den Beginnzeiten sollen jeweils 30min addiert werden.
Bsp.:
11.30 -16.00 & 18.00-20.00 Uhr
12.00, 12.15, 12.30, 12.45, 13.00, ....15.45, 16.00 & 18.30, 18.45, 19.00 usw.
Was bisher geschah:
Das geht bestimmt viiiiel einfacher, weiß nur nicht wie....
Bitte um dringeeeeeende HILFEEEEEEEe
ich versuche derzeit eine Ausgabe von Lieferzeiten zu programmieren und komme einfach nicht weiter. Die Funktion ist mittlerweile so komplex geworden, dass ich den überblick verliere. Ich hoffe, dass mir einer von euch weiterhelfen kann.
Zum Problem:
Ich habe mehrere Shops auf einer Seite mit unterschiedlichen Lieferzeiten. Die Lieferzeiten können folgendermaßen aussehen:
11.30 -16.00 & 18.00-20.00 Uhr
11.45-22.00 Uhr
9.30 - 03.45 Uhr
8.30 - 12.45 & 14.40 - 04.00
Es gibt also 4 verschiedene möglichkeiten.
ich möchte nun das meine Funktion die derzeitige Uhrzeit nimmt und prüft,
zu welchen Zeiten geliefert werden kann. Dabei soll sich die Uhrzeit um 15 min erhöhen. zu den Beginnzeiten sollen jeweils 30min addiert werden.
Bsp.:
11.30 -16.00 & 18.00-20.00 Uhr
12.00, 12.15, 12.30, 12.45, 13.00, ....15.45, 16.00 & 18.30, 18.45, 19.00 usw.
Was bisher geschah:
PHP-Code:
$minutes=array('00','15','30','45');
// $t= Stunde
//$k= Minute
for ($h=$t; $h <= $ende_h; $h++) {
if($h>=24){ // Lieferzeit liegt in der Nacht
$p=$h-24;
}else{
$p=$h;
}
if($begin2_h!=0 && $h==$ende1_h){ // letzte Stunde 1.Lieferzeit - erste Stunde 2.Lieferzeit
if($k<=$ende1_m){
for ($m=0; $m<=3; $m++) {
if($minutes[$m]<=$ende1_m){
$time[]=$p.':'.$minutes[$m];
}
}
}
// erhöhen bis erste Stunde 2.Lieferzeit
for ($z=$h; $z<$begin2_h; $z++) {
$p++;
$h++;
}
}else if($begin2_h!=0 && $h>$ende1_h && $h<$begin2_h){
// erhöhen bis erste Stunde 2.Lieferzeit
for ($z=$h; $z<=$begin2_h; $z++) {
$p++;
$h++;
}
}
if(($h==$t) && (($h!=$begin1_h) && ($h!=$begin2_h) && ($h!=$ende_h) && ($h!=$ende1_h))){ // erste Stunde 1.Lieferzeit
if($begin1_m<=45){
for ($m=0; $m<=3; $m++) {
if($minutes[$m]>=$begin1_m){
$time[]=$p.':'.$minutes[$m];
}
}
}else{
$p++;
$k=0;
}
}else if($h==$ende_h){ //letzte Stunde 1.Lieferzeit
for ($m=0; $m <=3; $m++) {
if($minutes[$m]<=$ende_m){
$time[]=$p.':'.$minutes[$m];
}
}
}else if($begin2_h!=0 && $h==$begin2_h){ // erste Stunde 2.Lieferzeit
$begin2_m=$begin2_m+30;
if($begin2_m>=60){
$begin2_m=$begin2_m-60;
$p++;
$h++;
}
for ($m=0; $m<=3; $m++) {
if($minutes[$m]>=$begin2_m){
$time[]=$p.':'.$minutes[$m];
}
}
}else{
for ($m=0; $m<=3; $m++) {
$time[]=$p.':'.$minutes[$m];
}
}
}
return $time;
Bitte um dringeeeeeende HILFEEEEEEEe
Kommentar