Som sagt i en kommentar tror jag att detta mest beror på personliga preferenser. I mina ögon är användningen av en Unix-tidsstämpel och "legacy" icke-OOP-gränssnitt inte sättet att göra det i dagens värld, till exempel använder vi (läs:borde inte) en INT
datatyp i vår databas för att lagra datum i Unix Timestamp-format, bör vi istället använda databasens ursprungliga typ som vanligtvis är en DATE
eller DATETIME
typ som samarbetar med PHPs DateTime
objekt (och andra språks) nästan naturligt när det kommer till standardkonverteringar.
För att utveckla lite vad jag menar med standardkonverteringar:När du använder MySQL och drar tillbaka ett värde till PHP får du en ISO-formaterad datumsträng, varav DateTime
klass analyserar i sin konstruktor som ger dig ett omedelbart användbart objekt. Däremot, för att gå Unix-tidsstämpelvägen måste du använda strtotime
, då date
för att få det till vilket format du vill ha.
Jag nämnde tidigare om interop mellan våra PHP-system och .NET-system. Även om det inte finns några specifika problem som orsakas av att använda en tidsstämpel är det helt enkelt inte den praktiska lösningen, eftersom vi återigen använder en databas som returnerar ett DateTime-värde som kan skickas direkt. Om vi skulle konvertera detta till en unix-tidsstämpel för intern användning i PHP måste vi också sedan konvertera det tillbaka om vi skulle skicka ett svar, eller skicka ett svar till .NET-applikationen (eller ska jag bara säga API i det här fallet) som är en tidsstämpel och konvertera den i slutet. Genom att använda DateTime
överlag minskar det behovet av att omvandlingar ska ske överhuvudtaget och hela utvecklingsprocessen är enklare.
Slutligen för att lägga till allt detta, som du också nämnde i ditt inlägg, får du använda glänsande föremål som DateInterval
, enklare tidszonindelning, enklare manipulation och enklare formatering etc när du använder DateTime
och det är relaterade objektorienterade partners i brott. Det är bara en enklare utvecklingsprocess i mina ögon.
Jag tror inte som jag inledningsvis sa att det finns ett "rätt" svar på detta, bara mer av en personlig preferens baserat på din egen kodningsstil, och kommentarerna ovan återspeglar min.
- Jag tror inte det på något sätt. Speciellt med PHP-skript som i allmänhet är så korta processer ändå.
Ja :)
Se kommentarerna ovan om databasen, det är inte "native" att använda en Unix Timestamp för detta ändamål IMO. Du kan bara ringa ->getTimezone
och lagra detta i databasen, använd sedan ->setTimezone
när du drar ut den igen.