Klasa DateTime z pewnymi przydatnymi metodami wydaje się ogólnie lepsza od natywnych funkcji daty php, takich jak strtotime
, mktime
i strftime
(i więcej). Ale czy jest jakaś wada lub powód, dla którego nie powinienem jej używać?Klasa DateTime vs. natywne funkcje daty PHP
Jedynym powodem, dla którego mogę myśleć, jest to, że stworzenie instancji klasy może być droższe niż użycie samej funkcji.
- Zgodziłbyś się z tym?
- Czy ma to dla nas jakiś sens obiekt DateTime dla prostych rzeczy?
- Czy są jakieś inne wady?
Wydaje się nieco mylące, aby przełączać się między tymi dwoma opcjami przez cały czas, więc chciałbym mieć odprawę, co wolałbym robić.
Dwa przykłady mojej decyzji byłoby:
- Konwersja daty do zlokalizowanego wartości
- Obliczanie czasu pomiędzy dwiema datami
oraz zakres dat, nawet w 32-bitowym środowisku PHP, wystarczą, aby paleobiolog lub kosmolog, studiując początek lub koniec wszechświata, byli zadowoleni –
Widzę "poręczność" DateTime, ale użyłbyś również to dla prostych rzeczy, takich jak te, które właśnie dodałem do mojego pytania? – Anonymous
Ja bym, ponieważ użyjemy funkcji 'mktime' lub' strtotime' - wymagają one określonej kolejności parametrów reprezentujących dzień, rok, miesiąc, godzinę itd. Z 'DateTime' mogę utworzyć obiekt przy użyciu dowolnych parametrów, takich jak' $ date = DateTime :: createFromFormat ('m H: s D-Y', $ weird_user_input); 'który może być sformatowany do uniksowego znacznika czasu lub dowolnego innego pożądanego formatu daty. Mogę nawet określić strefę czasową natychmiast podczas tworzenia obiektu. Więc tak, zdecydowanie użyłbym go, ponieważ nie widzę, gdzie sposób proceduralny mógłby mi pomóc lepiej. –