@@ -89,7 +89,7 @@ Nachfolgende Seiten aus der PHP-Dokumentation finden in den Beispielen laufend V
8989## [ Zeitzone] ( #zeitzone )
9090{: #zeitzone}
9191
92- Für alle nachfolgenden Beispiele wurde wie folgt die verwendete < strong > Standard-Zeitzone</ strong > gesetzt.
92+ Für alle nachfolgenden Beispiele wurde wie folgt die verwendete ** Standard-Zeitzone** gesetzt.
9393
9494~~~ php
9595date_default_timezone_set('Europe/Berlin');
@@ -228,6 +228,67 @@ echo $period;
228228~~~
229229
230230
231+ ### [ Interval - Anwendungsbeispiel ("Vor x Tagen")] ( #interval-anwendung )
232+ {: #interval-anwendung}
233+
234+ Auf Basis der obigen Ansätze ist bspw. nachfolgende konkrete Anwendung ** "Vor x Tagen/Monaten."** möglich.
235+ Basis und Codebeispiel entstammen diesen [ PHP.de-Forumsbeitrag] ( https://www.php.de/forum/webentwicklung/php-einsteiger/1524146-php-vor-x-tagen ) .
236+
237+ ~~~ php
238+ $ts = 1517580600;
239+
240+ $date = new DateTime('now');
241+ $date->setTimestamp($ts);
242+
243+ $now = new DateTime('now');
244+ $diff = $now->diff($date);
245+
246+ if ($diff->y > 0) {
247+ $unit = 'Jahr';
248+ $intervall = $diff->y;
249+
250+ } elseif ($diff->m > 0) {
251+ $unit = 'Monat';
252+ $intervall = $diff->m;
253+
254+ } elseif ($diff->d > 0) {
255+ $unit = 'Tag';
256+ $intervall = $diff->d;
257+
258+ } elseif ($diff->h > 0) {
259+ $unit = 'Stunde';
260+ $intervall = $diff->h;
261+
262+ } elseif ($diff->i > 0) {
263+ $unit = 'Minute';
264+ $intervall = $diff->i;
265+
266+ } else {
267+ $unit = 'Sekunde';
268+ $intervall = $diff->s;
269+ }
270+
271+ // ev. Pluralform erzeugen
272+ if ($intervall <> 1 ) {
273+ $unit .= 'en';
274+ $unit = str_replace('ee', 'e', $unit);
275+ }
276+
277+ // Ausgabe
278+ printf('Thema erstellt vor %s %s.', $intervall, $unit);
279+ ~~~
280+
281+ Ergibt testweise bei folgenden Eingabe die als Kommentar nebenstehenden Ausgaben.
282+
283+ ~~~ php
284+ $ts = date('U'); // Thema erstellt vor 0 Sekunden.
285+ $ts = date('U') - 1800; // Thema erstellt vor 30 Minuten.
286+ $ts = date('U') - 3600; // Thema erstellt vor 1 Stunde.
287+ $ts = date('U') - 1036800; // Thema erstellt vor 12 Tagen.
288+ ~~~
289+
290+
291+
231292## [ Perioden] ( #perioden )
232293{: #perioden}
233294
0 commit comments