Zeitgesteuerter Content Service mit Emoji Support
Dieses PHP Skript ermöglicht eine dynamische und persönliche Ansprache deiner Webseitenbesucher basierend auf der aktuellen Uhrzeit. Durch die Unterteilung in verschiedene Tagesabschnitte liefert das Tool stets die passende Begrüßung, vom ersten Kaffee am Morgen bis zum entspannten Gruß am späten Abend. Die Logik erkennt zudem das Wochenende und ergänzt die Ausgabe um passende Wünsche für die Freizeit. Dank der Struktur und integrierten Emojis lässt sich das Skript nahtlos in Designs einfügen und sorgt sofort für eine User Experience. Es ist die perfekte, wartungsfreie Lösung für Webentwickler, die Wert auf kleine, aber wirkungsvolle Details in der Nutzerkommunikation legen.
<?php
class GreetingService {
private $timezone;
public function __construct($timezone = 'Europe/Berlin') {
$this->timezone = new DateTimeZone($timezone);
}
public function getElegantGreeting($name = "") {
$now = new DateTime('now', $this->timezone);
$hour = (int)$now->format('H');
$dayOfWeek = (int)$now->format('N'); // 1 (Mo) bis 7 (So)
$greetings = [
'night' => ['start' => 0, 'end' => 4, 'text' => 'Gute Nacht', 'icon' => '🌙'],
'morning' => ['start' => 5, 'end' => 10, 'text' => 'Guten Morgen', 'icon' => '☕'],
'noon' => ['start' => 11, 'end' => 13, 'text' => 'Mahlzeit', 'icon' => '🍲'],
'afternoon' => ['start' => 14, 'end' => 17, 'text' => 'Guten Nachmittag', 'icon' => '☀️'],
'evening' => ['start' => 18, 'end' => 23, 'text' => 'Guten Abend', 'icon' => '🍷']
];
$currentGreeting = $greetings['evening'];
foreach ($greetings as $period) {
if ($hour >= $period['start'] && $hour <= $period['end']) {
$currentGreeting = $period;
break;
}
}
$extra = ($dayOfWeek >= 6) ? " Genieße dein Wochenende!" : "";
$nameString = !empty($name) ? ", " . htmlspecialchars($name) : "";
return sprintf(
"%s%s%s!%s",
$currentGreeting['icon'],
$currentGreeting['text'],
$nameString,
$extra
);
}
}
$greeter = new GreetingService();
echo '<h2 style="font-family: sans-serif; color: #333;">' . $greeter->getElegantGreeting('Besucher') . '</h2>';
?>
