2016-05-24 4 views
0

Ich habe das folgende Problem.PHP - Holen Sie sich alle Daten, die auf einen bestimmten Wochentag in einem Jahr fällt

In der Tabelle Mitarbeiter speichern ich die freien Tage der Woche, die einen Mitarbeiter hat. Zum Beispiel sind die freien Tage von John immer am Montag.

Also, ich möchte alle Termine für ein Jahr, das am Montag fällt.

Zum Beispiel in diesem Monat (Heute ist die 24-05-2016) die Termine für Montag sind:

All this dates are on Mondays: 
02-05-2016, 
09-05-2016, 
16-05-2016, 
23-05-2016, 
30-05-2016 
and so on. 

Gibt es eine Möglichkeit, dass in PHP zu tun?

Dank

+0

Dies ist wahrscheinlich besser geeignet, um Geschmack in Ihrer Datenbank zu handhaben, je nachdem, was Geschmack der Datenbank Sie verwendeten. In PHP müssen Sie eine Art Schleife oder Iteration durchführen. In MS SQL ist zum Beispiel keine Schleife erforderlich. –

+0

Werfen Sie einen Blick auf http://stackoverflow.com/a/12554714/2003600, dies könnte Ihnen in die richtige Richtung helfen. – Milanzor

Antwort

1

Das Intervall ist immer 7 Tage, so funktioniert nur das Startdatum als Datetime-Objekt für den ersten „Montag“ des Jahres, als ein Jahr Enddatum dann und DatePeriod zu-Schleife durch diesen Datumsbereich mit einem Abstand von jeweils 7 Tagen

$startDate = new DateTime('2016-01-01'); 
$startDate->modify('first monday'); 
$endDate = clone $startDate; 
$endDate = $endDate->add(new DateInterval('P1Y')); 

$interval = new DateInterval('P7D'); 

$period = new DatePeriod($startDate, $interval, $endDate); 
foreach ($period as $date) { 
    echo $date->format('Y-m-d').PHP_EOL; 
} 

Anfang und Ende einstellen Daten

+0

Danke! Es klappt – juanpscotto

Verwandte Themen