2016-05-18 1 views
0

Ich brauche Hilfe zu einem Code-Daten.Datum und Tage für PHP-Programmierung

Ich habe eine Gemeinde, die bestimmte Tage von Büro hat:

$Dispatch = array ("Monday" , "Friday" , "Saturday") ; 

Büros von 2 Werktag gemacht, nachdem der Auftrag dann, wenn ich am Montag fragte

mich am Mittwoch erreichen sollten aber als Mittwoch ist nicht in der Anordnung von Terminen

Sendungen an den nächsten,

ein weiteres Beispiel

am Freitag zu diesem Zeitpunkt Knochen erreichen ich soll, wenn Ich bitte um einen Tag Samstag sollte mich am Montag erreichen und wird als lieferfähig aufgeführt.

$dias = array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"); 
     $meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"); 

$despacho = array("Lunes","Viernes","Sabado"); 
$dia_actual = $dias[date('w')]; 
$dia_actual_normal = $dias[date('w')+2]; 
if(in_array($dia_actual_normal,$despacho)) 
    { 
     $actual = $dia_actual_normal; 
    } 

Ich habe dies, aber ich weiß nicht mehr.

Antwort

0

i etwas Code

// index of normal actual day 
$i = (date('w')+2) % 6; 
// find 1st ocurrence in despacho array 
while (! in_array($dias[$i], $despacho)) $i = ($i+1) % 6; 
$actual = $dias[$i]; 
+0

Sondieren Sie Ihren Code und es funktioniert gut, aber jetzt Sondierung anderen Tag, Dienstag, Samstag und Sonntag, heute ist Mittwoch, wenn die meisten zwei Tage sollte ich als Freitag aber nicht auf der Liste geben, müssen Sie mir Samstag geben. Aber wenn Sie den Code ausführen, sagt mir Sonntag. warum? –

+0

$ dias = Array ("Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"); $ meses = array ("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"); \t \t $ despacho = Array ("Martes", "Sabado", "Domingo"); \t \t $ dia_actual = $ dias [Datum ('w')]; \t \t $ dia_actual_normal = $ dias [Datum ('w') + 2]; \t \t $ i = (Datum ('w') + 2)% 6; \t \t // finde den ersten Vorfall im Despacho-Array \t \t während (! In_array ($ dias [$ i], $ despacho)) $ i = ($ i + 1)% 6; \t \t $ actual4 = $ dias [$ i]; \t \t print_r ($ actual4); \t \t exit(); –

+0

danke, aber schauen Sie sich an: $ despacho = array ("Martes", "Viernes", "Sabado"); oder $ despacho = array ("Dienstag", "Freitag", "Samstag"); Wenn ich heute kaufe, sollte der Mittwoch Freitag raus und zeigt mir den Tag Samstag. Warum ist das? nur wenn es den Tag im Büro gibt, sollten Sie den Tag suchen, aber nächste Büro. hilf mir bitte –

0

Nur wenige Tage zu Ihnen ins Geschäft hinzufügen, bis die gewünschten Tag erreichen:

$desired_day = Datetime::createFromFormat('Y-m-d', '2016-05-18'); 
$Dispatch = array ("Monday" , "Friday" , "Saturday"); 

$interval = DateInterval::createfromdatestring('+1 day'); 
while(!in_array($desired_day->format('l'), $Dispatch)) { 
    $desired_day->add($interval); 
} 

return $desired_day->format('l'); 
0
$dias = array("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo"); 
     $meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"); 

     $despacho = array("Martes","Viernes","Sabado"); 
     $dia_actual = $dias[date('w')]; 
     $dia_actual_normal = $dias[date('w')+2]; 

     $i = (date('w')+2) % 6; 
     // find 1st ocurrence in despacho array 
     while (! in_array($dias[$i], $despacho)) $i = ($i+1) % 6; 
     $actual1 = $dias[$i]; 

print_r($actual1); 
     exit(); 

Aber nicht funktioniert geändert haben, denn heute Mittwoch ist so es sollte Freitag sein: S

Hilf mir

Verwandte Themen