Skip to content

Commit 2b11cef

Browse files
authored
DatePeriod
1 parent c89bf71 commit 2b11cef

File tree

1 file changed

+41
-4
lines changed

1 file changed

+41
-4
lines changed

implement-approach/04_datetime.md

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ inhalt:
3737
anchor: differenzen
3838
simple: ""
3939

40+
- name: "Perioden"
41+
anchor: perioden
42+
simple: ""
43+
4044
- name: "Vergleiche"
4145
anchor: vergleiche
4246
simple: ""
@@ -217,23 +221,56 @@ $now = new DateTime(); // 2016-01-14
217221
$refDate = new DateTime('2013-02-10');
218222

219223
$format = '%y Jahre, %m Monate und %d Tage.';
220-
$period = $now
221-
->diff($refDate)
222-
->format($format);
224+
$period = $now->diff($refDate)->format($format);
223225

224226
echo $period;
225227
// 2 Jahre, 11 Monate und 4 Tage.
226228
~~~
227229

228230

231+
## [Perioden](#perioden)
232+
{: #perioden}
233+
234+
Will man bspw. eine Auflistung, mit den kommenden Samstagen (hier der nächsten zwei Monate),
235+
so kann man hier z.B. `DatePeriod` nutzen.
236+
237+
~~~ php
238+
// heute Fr. 13.01.2017
239+
240+
$dtStart = new DateTimeImmutable('this saturday'); // Datum von
241+
$dtEnd = $dtStart->modify('+2 months'); // Datum bis
242+
243+
$period = new DatePeriod(
244+
$dtStart,
245+
new DateInterval('P1W'), // Periode: 1 Woche
246+
$dtEnd
247+
);
248+
249+
foreach ($period as $date) {
250+
echo $date->format('D. d.m.Y') . "\n";
251+
}
252+
253+
/*
254+
Sat. 14.01.2017
255+
Sat. 21.01.2017
256+
Sat. 28.01.2017
257+
Sat. 04.02.2017
258+
Sat. 11.02.2017
259+
Sat. 18.02.2017
260+
Sat. 25.02.2017
261+
Sat. 04.03.2017
262+
Sat. 11.03.2017
263+
*/
264+
~~~
265+
266+
229267
## [Vergleiche](#vergleiche)
230268
{: #vergleiche}
231269

232270
~~~ php
233271
$dt1 = new DateTime('now');
234272
$dt2 = new DateTime('tomorrow');
235273

236-
// ab PHP 5.2.2 - davor siehe Doku
237274
var_dump($dt1 == $dt2); // false
238275
var_dump($dt1 < $dt2); // true
239276
var_dump($dt1 > $dt2); // false

0 commit comments

Comments
 (0)