Brache Hilfe bei mktime

Hallo Gemeine,
vor einigen Jahren hatte ich eine Internetseite zum Thema Weihnachten. Diese würde ich jetzt gerne reaktivieren.
Ich habe eine Funktion auf der Seite die die restlichen Tage bis Weihnachten anzeigt. Früher hat das auch einwandfrei funktioniert. Jetzt aber ändert sich der Wert mitten am Tag (ich vermute mal um 12 Uhr; muss ich aber mal genau kontrollieren).
Hier mal der Code:

<?php $zeitpunkt = mktime(0,0,0,12,24,2019); $jetzt = time(); $differenz = $zeitpunkt - $jetzt; $differenz = $differenz / 60 / 60 / 24; $differenz = round($differenz, 0); for($i=0; $i<strlen($differenz); $i++) { $zahl = substr($differenz, $i, 1); print '.$zahl.'; } ?>

Hat jemand eine Idee dazu?

Schönes Wochenende

Hi,
$differenz sind ja die Tage bis Weihnachten um 00:00 Uhr, was du dann rundest. Am 22.12. um 10:00 Uhr wären das dann etwa 1,6 verbleibende Tage -> wird auf 2 Tage aufgerundet. Am 22.12. um 14:00 Uhr sind es nur noch etwa 1,4 Tage -> wird auf 1 Tag abgerundet.
Die Funktion die du anstatt round wohl eher vernwenden möchtest ist ceil().
Mfg :wink:

Hi Mgier,
du wirst wohl recht haben. Allerdings frag ich mich warum das Teil früher geklappt hat und jetzt nicht mehr. Der Code ist übrigens nicht von mir selbst.
Greetings

hi Gockel

schau mal hier: https://www.php.net/mktime weiter unten ist zu sehen, dass mktime während verschiedener Versionen einige Änderungen hat - weißt Du denn unter welcher Version dies früher lief als es noch so geklappt hat? Wobei das auch an Änderungen anderer Funktionen liegen kann, die bei mktime genannten sind hier ggf. nicht relevant.

Zuletzt war die Seite 2014 online. Da müsste es noch funktioniert haben.

weißt Du wo und unter welcher PHP-Version? Falls bei uns, dann wird das höchstens PHP 5.6 gewesen sein.

Ja, war bei euch

Man kann es drehen und wenden wie man will, auch wenn ich mir nicht vorstellen kann wie sich mit diesem selben Code die Zeitzone um 12 Stunden verschiebt … eine einfache Anpassung löst das Problem ja. Du könntest auch einfach die statische Zeitangabe in mktime() so (um 12 Stunden) verschieben dass es wieder passt.

Vielleicht hat ja damals jemand im Suff an der Zeitzone vom Server gefummelt :sweat_smile:

OT: Zeitangaben und Zeitzonen verursachen oft noch viel lustigere und unvorhersehbare Probleme, also keine Bange :wink:

yEt6JSa

evtl. ist die Stromversorgung mal zusammengebrochen, unser Notaggregat läuft jetzt jedenfalls wieder.

Habe Katzen erwartet, bin enttäuscht :nutz:

Ihr spinnt :smiley: