Bei mir erzeugt Dein Code jede Menge Warnungen.
Ich habe
error_reporting(E_ALL);
ini_set('display_errors', 1);
unterhalb der Startzeile <?php
eingefügt.
Mit php7.0 (cli) sah keine einzige Warnung.
Mit hhvm sah ich dann aber sehr viele davon:
Strict Warning: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead in /tmp/test.php on line 45
Nachdem ich
ini_set("date.timezone","GMT");
# Alternative: ini_set("date.timezone","Europe/Berlin");
einfügte waren diese weg. Und haben mit dem gezeigten Problem leider nichts zu tun.
so.
Ich habe das Skript in Abschnitt 2 mal angepasst.
while (strtotime(date("d.m.Y",$neuesDatumTimestamp)) < strtotime(date("d.m.Y",$endTime))) {
hier also bewusst das große Y verwendet um die komplette Iteration durchzuführen. dann habe ich Ausgaben eingebaut:
echo "y: " . date( "Y-m-d", strtotime( date("d.m.y", $neuesDatumTimestamp ) ) ) . " < ", date( "Y-m-d", strtotime( date( "d.m.y",$endTime ) ) ) . "\n";
echo "Y: " . date( "Y-m-d", strtotime( date("d.m.Y", $neuesDatumTimestamp ) ) ) . " < ", date( "Y-m-d", strtotime( date( "d.m.Y",$endTime ) ) ) . "\n";
$myTag = date('d', strtotime('+'.$dayAdd.' day', $startTime));
$myMonat = date('m', strtotime('+'.$dayAdd.' day', $startTime));
$myJahr = date('Y', strtotime('+'.$dayAdd.' day', $startTime));
$neuesDatum = $myTag.".".$myMonat.".".$myJahr;
$neuesDatumTimestamp = strtotime($neuesDatum);
echo ($neuesDatum."\n");
$dayAdd ++;
}
Und folgende Ausgaben erhalten:
Ausgabe 2:
y: 2017-12-12 < 2017-12-12
Y: 2017-12-15 < 2018-01-20
15.12.2017
y: 2017-12-12 < 2017-12-12
Y: 2017-12-15 < 2018-01-20
16.12.2017
y: 2017-12-12 < 2017-12-12
Y: 2017-12-16 < 2018-01-20
17.12.2017
y: 2017-12-12 < 2017-12-12
Y: 2017-12-17 < 2018-01-20
18.12.2017
y: 2017-12-12 < 2017-12-12
Y: 2017-12-18 < 2018-01-20
19.12.2017
y: 2017-12-12 < 2017-12-12
Y: 2017-12-19 < 2018-01-20
20.12.2017
y: 2017-12-12 < 2017-12-12
Y: 2017-12-20 < 2018-01-20
21.12.2017
y: 2017-12-12 < 2017-12-12
Y: 2017-12-21 < 2018-01-20
22.12.2017
y: 2017-12-12 < 2017-12-12
Y: 2017-12-22 < 2018-01-20
23.12.2017
y: 2017-12-12 < 2017-12-12
Y: 2017-12-23 < 2018-01-20
24.12.2017
y: 2017-12-13 < 2017-12-12
Y: 2017-12-24 < 2018-01-20
25.12.2017
y: 2017-12-25 < 2017-12-12
Y: 2017-12-25 < 2018-01-20
26.12.2017
y: 2017-12-26 < 2017-12-12
Y: 2017-12-26 < 2018-01-20
27.12.2017
y: 2017-12-27 < 2017-12-12
Y: 2017-12-27 < 2018-01-20
28.12.2017
y: 2017-12-28 < 2017-12-12
Y: 2017-12-28 < 2018-01-20
29.12.2017
y: 2017-12-29 < 2017-12-12
Y: 2017-12-29 < 2018-01-20
30.12.2017
y: 2017-12-30 < 2017-12-12
Y: 2017-12-30 < 2018-01-20
31.12.2017
y: 2017-12-31 < 2017-12-12
Y: 2017-12-31 < 2018-01-20
01.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-01 < 2018-01-20
02.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-02 < 2018-01-20
03.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-03 < 2018-01-20
04.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-04 < 2018-01-20
05.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-05 < 2018-01-20
06.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-06 < 2018-01-20
07.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-07 < 2018-01-20
08.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-08 < 2018-01-20
09.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-09 < 2018-01-20
10.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-10 < 2018-01-20
11.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-11 < 2018-01-20
12.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-12 < 2018-01-20
13.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-13 < 2018-01-20
14.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-14 < 2018-01-20
15.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-15 < 2018-01-20
16.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-16 < 2018-01-20
17.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-17 < 2018-01-20
18.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-18 < 2018-01-20
19.01.2018
y: 2017-12-12 < 2017-12-12
Y: 2018-01-19 < 2018-01-20
20.01.2018
Jetzt kannst Du selbst nachsehen, welcher Hase da wohin läuft. Und hoffentlich fällt endlich jemanden auf, dass es viel zu teuer ist, strtotime() zu verwenden und sich auf die korrekte Interpretierung eines Haufens dokumentierter Formate zu verlassen wenn Tag, Monat und Jahr bekannt sind.