Aktywne Wpisy

gejuszmapkt +4
#przegryw
Czy ktoś tutaj mówi na to "wazówka", czy może jestem jedyny xd
Czy ktoś tutaj mówi na to "wazówka", czy może jestem jedyny xd

LubiePieski +42
uwielbiam patrzeć na księżyc ludzie przecież to jest zupełnie inna planeta która sobie pływa w kosmosie i jest tak wielka że widać ją ładnie gołym okiem przecież to jest fascynujące
ja muszę tam być muszę wiedzieć jak to jest patrzeć stamtąd na ziemie
ja muszę tam być muszę wiedzieć jak to jest patrzeć stamtąd na ziemie





jaca@fafik:~$ php7 -r "echo (new DateTime(\"2016-01-01\"))->diff(new DateTime(\"2016-12-01\"))->format(\"%m\").PHPEOL;";
11
jaca@fafik:~$ php5 -r "echo (new DateTime(\"2016-01-01\"))->diff(new DateTime(\"2016-12-01\"))->format(\"%m\").PHPEOL;";
10
Edith: znalazłem kiedyś takiego buga, że diff źle liczy między 00 a 1
Niestety nie działa
jaca@fafik:~$ php5 -r "echo (new DateTime(\"2016-01-01\"))->diff(new DateTime(\"2016-12-01 01:00:00\"))->format(\"%m\").PHPEOL;";
10
jaca@fafik:~$ php5 -r "echo (new DateTime(\"2016-01-01\"))->diff(new DateTime(\"2016-12-01 02:00:00\"))->format(\"%m\").PHPEOL;";
10
jaca@fafik:~$ php5 -r "echo (new DateTime(\"2016-01-01\"))->diff(new DateTime(\"2016-12-01 12:00:00\"))->format(\"%m\").PHPEOL;";
10
jaca@fafik:~$ php5 -r "echo (new DateTime(\"2016-01-01\"))->diff(new DateTime(\"2016-12-02 12:00:00\"))->format(\"%m\").PHPEOL;";
11
Wydaje mi sie, że takich błedów może być więcej
https://bugs.php.net/search.php?search_for=DateTime+diff&boolean=0&limit=30ℴby=&direction=DESC&cmd=display&status=Open&bugtype=All&project=All&phpos=&phpver=&cveid=&assign=&authoremail=&bugage=0&bug_updated=0
najnowszy php 7.1 + opcache juz sie kompiluje na docelowej
jaca@fafik:~$ php5 -r "echo (new DateTime(\"2016-01-01 01:00\"))->diff(new DateTime(\"2016-12-01 01:00\"))->format(\"%m\").PHP_EOL;";
11
W sumie to może być jakiś workaround ...
To nie jest błąd pomiędzy wersjami tylko kwestia ustawionej strefy czasowej.
W jednym przypadku wynikowy
DateIntervalma 11 miesięcy, w drugim 10 miesięcy i 30 dni.Z czego wiem, powód jest związany z tym, że przy obliczaniu diffa, DateTime'y są najpierw przeliczane do czasu UTC, ale szczegółów nie znam. Niewątpliwie nie można zbytnio ufać
%mi%dw DateInterval, ponieważ wynik zmienia się w zależności od konfiguracji PHP.