2017-02-22 2 views
-3

Ich möchte Namen der Wochentage in einem Array aus einem bestimmten Datumsbereich speichern. Eg. Wenn der angegebene Zeitraum von 2016-12-1 bis 2017-02-22 ist, dann möchte ich alle Wochentage in diesem Datumsbereich speichern.Wie kann ich Wochentage Namen in einem Array aus einem bestimmten Zeitraum speichern?

+0

Zeigen Sie uns, einige der Forschung Was hast du versucht? Was hat nicht funktioniert? Wir sind nicht hier, um für Sie zu kodieren – uzr

+0

wekday Zahlen ODER Wochentagsnamen? – RomanPerekhrest

+0

eigentlich habe ich nicht angefangen, für es zu kodieren. Ich fing an, zu suchen, aber ich habe keine korrekten ans erhalten, also verschickte ich die Frage ... :) @uzr –

Antwort

0
$timestamp = strtotime('next Sunday'); 
$days = array(); 
for ($i = 0; $i < 7; $i++) { 
$days[] = strftime('%A', $timestamp); 
$timestamp = strtotime('+1 day', $timestamp); 
} 
+0

wird es für einen bestimmten Zeitraum arbeiten ......? –

0

Versuchen Sie es. Geben Sie Startdatum, Enddatum, Wochentage als Eingabe

params
function progDateRange($date, $end_date, array $wkDays, array $excluded) 
{ 
$dates = array(); 

$current_date = strtotime($date); 
$max_date = min(strtotime('+2 years'), strtotime($end_date)); 
$dow = array_keys($wkDays); 

while ($current_date < $max_date) { 
    if ($excluded && in_array($date_formatted, $excluded, true)) { 
     continue; 
    } 
    if (in_array(date('l'), $dow, true)) { 
     array_push($dates, $date); 
    } 
    $current_date = strtotime('+1 day', $current_date); 
    $date = date('Y-m-d', $current_date); 
} 

return $dates; 
} 
0

Die Lösung mit date und strtotime Funktionen:

$date_from = '2016-12-1'; 
$date_to = '2017-02-22'; 
$current = strtotime($date_from); 
$max_time = strtotime($date_to); 
$weekdays = []; 

while ($current <= $max_time) { 
    // getting weekday name for current timestamp within date range 
    $weekdays[] = date('l', $current); 
    $current = strtotime('+1 day', $current); // setting timestamp for each next next day in increase order 
} 

print_r($weekdays); 

Der Ausgang wie unten sein wird:

Array 
(
    [0] => Thursday 
    [1] => Friday 
    [2] => Saturday 
    [3] => Sunday 
    [4] => Monday 
    [5] => Tuesday 
    [6] => Wednesday 
    [7] => Thursday 
    [8] => Friday 
    [9] => Saturday 
    [10] => Sunday 
    [11] => Monday 
    [12] => Tuesday 
    [13] => Wednesday 
    [14] => Thursday 
    .... 
    ... 
Verwandte Themen