itgustel
Goto Top

Stunden subtrahieren

Hallo Leute,

ich würde mir gerne in meine private Webcam einblenden lassen, um wie viele Minunten der heutige Tag zu gestern länger/kürzer ist.

Dazu habe ich folgendes geschrieben, damit wird mir mit timestamp3 die heutige Tageslänge angezeigt und mit timestamp6 die gestrige.
Ich schaffe es aber nicht die Differenz in Minuten auszugebn, also -2 Minuten oder im Frühjahr mit positiven (+) Wert, z. B. +2 Minuten...

So kommt bei "echo date('H:i', $timestamp3-$timestamp6);" nämlich 00:58 raus.

<?php date_default_timezone_set("Europe/Berlin"); ?>

<?php
$timestamp1 = strtotime(date_sunrise(time(), SUNFUNCS_RET_STRING, 47.5, 11.1, 90.5, 1));
$timestamp2 = strtotime(date_sunset(time(), SUNFUNCS_RET_STRING, 47.5, 11.1, 90.5, 1));
$timestamp3 = (($timestamp2 - $timestamp1)-3600);

$timestamp4 = strtotime(date_sunrise(strtotime("-1 day"), SUNFUNCS_RET_STRING, 47.5, 11.1, 90.5, 1));
$timestamp5 = strtotime(date_sunset(strtotime("-1 day"), SUNFUNCS_RET_STRING, 47.5, 11.1, 90.5, 1));
$timestamp6 = (($timestamp5 - $timestamp4)-3600);

echo date('H:i', $timestamp3);
echo date('H:i', $timestamp6);
echo date('H:i', $timestamp3-$timestamp6);
?>

Im Internet habe ich noch sowas gesehen:

$diff = $timestamp3->diff($timestamp6);
echo $diff->format('%r%H:%I');

Aber das funktioniert gar nicht.
Hat jemand ein Tipp für mich?

Danke

Content-ID: 627049

Url: https://administrator.de/contentid/627049

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

ITgustel
ITgustel 29.11.2020 um 20:07:45 Uhr
Goto Top
Konnte die Lösung selbst finden!
Für alle Interessierten:

<?php
$timestamp1 = strtotime(date_sunrise(time(), SUNFUNCS_RET_STRING, 47.5, 11.1, 90.5, 1));
$timestamp2 = strtotime(date_sunset(time(), SUNFUNCS_RET_STRING, 47.5, 11.1, 90.5, 1));
$timestamp3 = (($timestamp2 - $timestamp1)-3600);

$timestamp4 = strtotime(date_sunrise(strtotime("-1 day"), SUNFUNCS_RET_STRING, 47.5, 11.1, 90.5, 1));
$timestamp5 = strtotime(date_sunset(strtotime("-1 day"), SUNFUNCS_RET_STRING, 47.5, 11.1, 90.5, 1));
$timestamp6 = (($timestamp5 - $timestamp4)-3600);

echo sprintf("%+d",(($timestamp3-$timestamp6)/60));
?>

Die Lösung war:
echo sprintf("%+d",(($timestamp3-$timestamp6)/60));

Mit sprintf("%+d",()); wird ein positives Vorzeichen mit ausgegeben.
Sonst würde nur ein negatives Vorzeichen angezeigt, so auch ein positives (+).

Grüße