2017-06-01 4 views
2

Das Array $weekDays enthält 7 Tage, die heute beginnen.Wie erstelle ich ein Array von Wochentagen im Y-m-d Format?

2017-06-01/ 2017-06-02/2017-06-03/2017-06-04/2017-06-05/2017-06-06/2017-06-07

$weekDays[0] = date('Y-m-d'); 
for ($i=1; $i<7; $i++){ 
    $weekDays[$i] = date('Y-m-d', strtotime('+' . $i . ' days')); 
} 

Ich brauche nur die Wochentage, damit ich dies versucht:

for ($j=0; $j < 7; $j++) { 
     $weekDays[$j] = strtotime($weekDays[$j]); 
     $weekday = date('w', $weekDays[$j]); 

     if ($weekday == 0 || $weekday == 6) { 
      echo "Saturday or Sunday<br>"; 
     } else { 
       echo $weekday . "<br>"; 
     } 
    } 

Aber ich will nur das Array zurück mit den Wochentagen und in Y-m-d Format.

Vielen Dank im Voraus!

Antwort

3

strtotime() ziemlich klug ist, können Sie es nur Wochentage Rückkehr bitten.

for($d=0; $d<5; ++$d){ 
    $result[]=date('Y-m-d',strtotime("+$d weekdays")); 
} 
var_export($result); 

Keine Post-Loop-Filterung erforderlich.

Ausgang:

array (
    0 => '2017-06-01', 
    1 => '2017-06-02', 
    2 => '2017-06-05', 
    3 => '2017-06-06', 
    4 => '2017-06-07', 
) 
0

Sie sind einen Schritt näher Ihre Lösung zu erhalten, können Sie ungesetzt verwenden nicht-Wochentagen von Array zu entfernen:

for ($j=0; $j < 7; $j++) 
    { 
    $weekDays[$j] = strtotime($weekDays[$j]); 
    $weekday = date('w', $weekDays[$j]); 

    if ($weekday == 0 || $weekday == 6) 
    { 
      unset($weekDays[$j]); 
    } 
} 
$weekDays = array_values($weekDays); //reorder after all unsets 
Verwandte Themen