Dzisiaj spotkałem się z czymś zagmatwalym dla zachowania funkcji \DateTime::createFromFormat
.PHP DateTime :: createFromFormat behavoiur
W moim przypadku mam ciąg znaków, reprezentujący datę w następującym formacie: m/Y (05/2017)
. Kiedy chcę przekonwertować ciąg do obiektu DateTime Napotkałem następujący problem:
$date = \DateTime::createFromFormat('m/Y', '02/2017');
kiedy zrzucić zmienną $date
właściwość data wewnątrz jest '2017-03-03 11:06:36.000000'
Ale jeśli dodać datę przed miesiącem $date = \DateTime::createFromFormat('d/m/Y', '01/02/2017');
otrzymuję obiekt z poprawną właściwością daty. (niestety nie mogę zmienić formatu daty i dodać dnia.) Musi to być m/Y).
Naprawiona przeze mnie poprawka polega na łączeniu pierwszego dnia miesiąca z łańcuchem dat, który mam $date = '01/'.$dateString;
, ale nie chcę tego robić, ponieważ jest on zakodowany na stałe.
Co jest nie tak? Czy funkcja createFromFormat nie zawiera informacji o tym, jak utworzyć obiekt? Jestem z tym bardzo zdezorientowany. Dzięki za pomoc wszystkich z góry!
to właśnie tworzy obiekt, var_dump $ Data-> Format() (format jest taka sama jak data, więc RMD nadal obowiązuje etc.) i powinieneś zobaczyć co czekasz :) – ThisGuyHasTwoThumbs
To zapełnia brakuje dane z dzisiejszymi danymi (dzień 31) i dostosowuje, aby pominąć nieprawidłowe daty. Pomocne lub nie, jest jak większość funkcji daty działa w PHP. –