Jak powiedziałem w komentarzu, uważam, że zależy to głównie od osobistych preferencji. Moim zdaniem użycie uniksowego znacznika czasu i „starszych” interfejsów niebędących obiektami OOP nie jest sposobem na zrobienie tego w dzisiejszym świecie, na przykład nie używamy (czytaj:nie powinno być) używania DATE
lub DATETIME
typ, który współpracuje z DateTime
PHP obiekt (i inne języki) prawie natywnie, jeśli chodzi o standardowe konwersje.
Aby rozwinąć nieco, co rozumiem przez standardowe konwersje:Kiedy używasz MySQL i cofasz wartość do PHP, otrzymujesz ciąg daty w formacie ISO, którego DateTime
klasa parsuje w swoim konstruktorze, dając Ci obiekt do natychmiastowego użycia. W przeciwieństwie do tego, aby przejść uniksową trasą znaczników czasu, musiałbyś użyć strtotime
, następnie data
aby uzyskać dowolny format natywnie.
Wspomniałem wcześniej o współdziałaniu naszych systemów PHP z systemami .NET. Chociaż nie ma konkretnych problemów spowodowanych użyciem znacznika czasu, po prostu nie jest to praktyczne rozwiązanie, ponieważ ponownie używamy bazy danych, która zwraca wartość DateTime, którą można wysłać bezpośrednio w dół potoku. Gdybyśmy mieli to przekonwertować na uniksowy znacznik czasu do użytku wewnętrznego w PHP, musielibyśmy to również przekonwertować z powrotem, jeśli mielibyśmy wysłaćodpowiedźlub wysłaćodpowiedźdo aplikacji .NET (albo powinienem tylko powiedzieć API w tym przypadku) jest to znacznik czasu i przekonwertuj go na końcu. Używając DateTime
we wszystkich dziedzinach, łagodzi to potrzebę jakichkolwiek konwersji, a cały proces rozwoju jest łatwiejszy.
Wreszcie, aby dodać do tego wszystkiego, jak również wspomniałeś w swoim poście, możesz użyć błyszczących elementów, takich jak DateInterval
, łatwiejsze podziały czasowe, łatwiejsza manipulacja i łatwiejsze formatowanie itp., gdy używasz DateTime
i pokrewni zorientowani obiektowo partnerzy w przestępczości. W moich oczach to po prostu łatwiejszy proces rozwoju.
Nie wierzę, jak powiedziałem na początku, że istnieje „poprawna” odpowiedź na to pytanie, po prostu bardziej osobiste preferencje oparte na twoim własnym stylu kodowania, a powyższe komentarze odzwierciedlają moje.
- Nie wierzę w to w żaden sposób. Zwłaszcza, gdy skrypty PHP są i tak krótko działającymi procesami.
Tak :)
Zobacz komentarze powyżej dotyczące bazy danych, nie jest "natywnym" używanie Unix Timestamp do tego celu IMO. Możesz po prostu zadzwonić ->getTimezone
i zapisz to w bazie danych, a następnie użyj ->setTimezone
kiedy wyciągniesz go z powrotem.