diff --git a/index.php b/index.php index 64c2c32..2733deb 100644 --- a/index.php +++ b/index.php @@ -344,8 +344,26 @@ function buildNewsletterHtml(array $config, array $articles, string $periodLabel $replyEmail = trim((string)($config['reply_to'] ?: $config['from_email'])); $replyHref = 'mailto:' . $replyEmail; $summaryText = $count === 1 - ? 'Im ' . h($periodLabel) . ' wurde 1 neuer Wiki-Artikel veröffentlicht.' - : 'Im ' . h($periodLabel) . ' wurden ' . $count . ' neue Wiki-Artikel veröffentlicht.'; + ? 'Im Zeitraum ' . h($periodLabel) . ' wurde 1 neuer Wiki-Artikel veröffentlicht.' + : 'Im Zeitraum ' . h($periodLabel) . ' wurden ' . $count . ' neue Wiki-Artikel veröffentlicht.'; + + $dateRangeText = 'für den Zeitraum ' . h($periodLabel); + if (!empty($articles)) { + $timestamps = []; + foreach ($articles as $article) { + $date = DateTimeImmutable::createFromFormat('Y-m-d', (string)($article['date'] ?? '')); + if ($date instanceof DateTimeImmutable) { + $timestamps[] = $date->getTimestamp(); + } + } + + if (!empty($timestamps)) { + sort($timestamps); + $from = (new DateTimeImmutable('@' . (string)$timestamps[0]))->setTimezone(new DateTimeZone(date_default_timezone_get())); + $to = (new DateTimeImmutable('@' . (string)$timestamps[count($timestamps) - 1]))->setTimezone(new DateTimeZone(date_default_timezone_get())); + $dateRangeText = 'vom ' . $from->format('d.m.Y') . ' bis ' . $to->format('d.m.Y'); + } + } $articleRows = ''; if ($count === 0) { @@ -470,10 +488,11 @@ function buildNewsletterHtml(array $config, array $articles, string $periodLabel Guten Tag,

- hier ist Ihre aktuelle Übersicht aus dem Thomas-Krenn-Wiki.
+ hier erhalten Sie Ihre aktuelle Übersicht aus dem Thomas-Krenn-Wiki, ' . $dateRangeText . '.
' . $summaryText . '

Viel Spaß beim Lesen wünscht
Ihr Team von Thomas-Krenn + diff --git a/wiki.php b/wiki.php index 44106a8..f30e226 100644 --- a/wiki.php +++ b/wiki.php @@ -344,8 +344,26 @@ function buildNewsletterHtml(array $config, array $articles, string $periodLabel $replyEmail = trim((string)($config['reply_to'] ?: $config['from_email'])); $replyHref = 'mailto:' . $replyEmail; $summaryText = $count === 1 - ? 'Im ' . h($periodLabel) . ' wurde 1 neuer Wiki-Artikel veröffentlicht.' - : 'Im ' . h($periodLabel) . ' wurden ' . $count . ' neue Wiki-Artikel veröffentlicht.'; + ? 'Im Zeitraum ' . h($periodLabel) . ' wurde 1 neuer Wiki-Artikel veröffentlicht.' + : 'Im Zeitraum ' . h($periodLabel) . ' wurden ' . $count . ' neue Wiki-Artikel veröffentlicht.'; + + $dateRangeText = 'für den Zeitraum ' . h($periodLabel); + if (!empty($articles)) { + $timestamps = []; + foreach ($articles as $article) { + $date = DateTimeImmutable::createFromFormat('Y-m-d', (string)($article['date'] ?? '')); + if ($date instanceof DateTimeImmutable) { + $timestamps[] = $date->getTimestamp(); + } + } + + if (!empty($timestamps)) { + sort($timestamps); + $from = (new DateTimeImmutable('@' . (string)$timestamps[0]))->setTimezone(new DateTimeZone(date_default_timezone_get())); + $to = (new DateTimeImmutable('@' . (string)$timestamps[count($timestamps) - 1]))->setTimezone(new DateTimeZone(date_default_timezone_get())); + $dateRangeText = 'vom ' . $from->format('d.m.Y') . ' bis ' . $to->format('d.m.Y'); + } + } $articleRows = ''; if ($count === 0) { @@ -470,10 +488,11 @@ function buildNewsletterHtml(array $config, array $articles, string $periodLabel Guten Tag,

- hier ist Ihre aktuelle Übersicht aus dem Thomas-Krenn-Wiki.
+ hier erhalten Sie Ihre aktuelle Übersicht aus dem Thomas-Krenn-Wiki, ' . $dateRangeText . '.
' . $summaryText . '

Viel Spaß beim Lesen wünscht
Ihr Team von Thomas-Krenn +