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
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
1 Antwort
- LÖSUNG ITgustel schreibt am 29.11.2020 um 20:07:45 Uhr
LÖSUNG 29.11.2020 um 20:07 Uhr
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
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