2017-01-30 20 views
1

ich diese Funktion bin mit allen Freitagen zwischen zwei Daten zu erhalten:Wie von Kohlenstoff alle Freitage im Datumsbereich erhalten

public function getFridaysInRange($dateFromString, $dateToString) 
{ 
    $dateFrom = new \DateTime($dateFromString); 
    $dateTo = new \DateTime($dateToString); 
    $dates = []; 

    if ($dateFrom > $dateTo) { 
     return $dates; 
    } 

    if (1 != $dateFrom->format('N')) { 
     $dateFrom->modify('next friday'); 
    } 

    while ($dateFrom <= $dateTo) { 
     $dates[] = $dateFrom->format('Y-m-d'); 
     $dateFrom->modify('+1 week'); 
    } 

    return $dates; 
} 

$this->getFridaysInRange('2017-01-01','2017-01-30'); 

Ergebnis:

array:4 [▼ 
    0 => "2017-01-06" 
    1 => "2017-01-13" 
    2 => "2017-01-20" 
    3 => "2017-01-27" 
] 

Gibt es eine Funktion in carbon wie über?

+0

kein wirklich Kohlenstoff darüber hinaus leider nicht einmal fridays, aber man könnte es nützlich gefunden: http://stackoverflow.com/questions/ 7061802/php-function-for-get-all-montages-in-date-range –

+0

Auf jeden Fall durchsehen http://carbon.nesbot.com/docs/ Ich glaube nicht, dass es eine einzige Funktion gibt, wie Ihre:) –

Antwort

1

Sie können alle Macht von Kohlenstoff verwenden wie folgt aus:

$fridays = []; 
$startDate = Carbon::parse($fromDate)->next(Carbon::FRIDAY); // Get the first friday. 
$endDate = Carbon::parse($toDate); 

for ($date = $startDate; $date->lte($endDate); $date->addWeek()) { 
    $fridays[] = $date->format('Y-m-d'); 
} 
Verwandte Themen