
Ich habe im privaten Umfeld eine Anfrage bekommen, dass auf einer Webseite ein Countdown dargestellt werden soll. Diese Seite benötigt keine Formatierung oder sollte ein Design enthalten.
Als erster Entwurf habe ich diese Zeilern entwickelt:
<?php
date_default_timezone_set('Europe/Berlin');
function getTimeRemaining($endtime) {
$now = new DateTime();
$endtime = new DateTime($endtime);
$interval = $now->diff($endtime);
$timeRemaining = [
'days' => $interval->format('%a'),
'hours' => $interval->format('%H'),
'minutes' => $interval->format('%I'),
'seconds' => $interval->format('%S')
];
return $timeRemaining;
}
$endtime = '2026-01-01 00:00:00';
$timeRemaining = getTimeRemaining($endtime);
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="300">
<title>Countdown</title>
</head>
<body>
<h1>Countdown bis zum neuen Jahr</h1>
<p>
Noch <?php echo $timeRemaining['days']; ?> Tage,
<?php echo $timeRemaining['hours']; ?> Stunden,
<?php echo $timeRemaining['minutes']; ?> Minuten,
<?php echo $timeRemaining['seconds']; ?> Sekunden.
</p>
</body>
</html>
Die technische Umsetzung war korrekt, allerdings sollte die Auflistung der Werte in eine eigene Zeile formatiert werden. Dafür muss nur der „Body“ ausgetauscht werden:
<p>Noch:</p>
<p><?php echo $timeRemaining['days']; ?> Tage</p>
<p><?php echo $timeRemaining['hours']; ?> Stunden</p>
<p><?php echo $timeRemaining['minutes']; ?> Minuten</p>
<p><?php echo $timeRemaining['seconds']; ?> Sekunden</p>
</body>