Jak bylo řečeno v komentáři, věřím, že je to většinou na osobních preferencích. V mých očích použití unixového časového razítka a "starších" non-OOP rozhraní není způsob, jak to udělat v dnešním světě, například nepoužíváme (čti:neměli bychom) používat INT
datový typ v naší databázi pro ukládání dat ve formátu Unix Timestamp, měli bychom místo toho používat nativní typ databáze, což je obvykle DATE
nebo DATETIME
typ, který spolupracuje s DateTime
PHP objekt (a další jazyky), pokud jde o standardní převody, téměř nativně.
Abychom trochu upřesnili, co myslím standardními převody:Když použijete MySQL a vrátíte hodnotu do PHP, získáte řetězec data ve formátu ISO, jehož DateTime
class analyzuje ve svém konstruktoru a dává vám okamžitě použitelný objekt. Naproti tomu, abyste šli cestou časových razítek Unixu, museli byste použít strtotime
, pak date
abyste jej nativně dostali do libovolného formátu.
Již dříve jsem se zmínil o interoperaci mezi našimi systémy PHP a systémy .NET. I když zde nejsou žádné konkrétní problémy způsobené používáním časového razítka, není to jednoduše praktické řešení, protože opět používáme databázi, která vrací hodnotu DateTime, kterou lze odeslat přímo z potrubí. Pokud bychom to měli převést na unixové časové razítko pro interní použití v PHP, museli bychom to také převést zpět, pokud bychom měli poslat odpověď nebo odeslat odpověď do aplikace .NET (nebo bych měl jen říct API v tomto případě) je to časové razítko a na konci jej převeďte. Pomocí DateTime
celkově to zmírňuje potřebu jakýchkoli konverzí a celý proces vývoje je jednodušší.
A konečně, abyste k tomu všemu přidali, jak jste také zmínili ve svém příspěvku, můžete použít lesklé položky, jako je DateInterval
, snadnější časové pásmo, snadnější manipulace a jednodušší formátování atd., když používáte DateTime
a je to příbuzní objektově orientovaní partneři ve zločinu. V mých očích je to jen jednodušší vývojový proces.
Nevěřím, jak jsem na začátku řekl, že na to existuje "správná" odpověď, jde spíše o osobní preference založené na vašem vlastním stylu kódování a výše uvedené komentáře odrážejí moje.
- V žádném případě tomu nevěřím. Obzvláště s PHP skripty obecně jsou tak krátké běžící procesy.
Ano :)
Viz komentáře výše k databázi, není "nativní" používat pro tento účel unixové časové razítko IMO. Stačí zavolat ->getTimezone
a uložte jej do databáze, poté použijte ->setTimezone
když jej znovu vytáhnete.