Както беше казано в коментар, вярвам, че това се дължи най-вече на личните предпочитания. В моите очи използването на времеви печат на Unix и „наследени“ не-OOP интерфейси не е начинът да го направим напред в днешния свят, например, ние не (четете:не трябва да бъде) използваме INT
тип данни в нашата база данни, за да съхраняваме дати във формат Unix Timestamp, вместо това трябва да използваме естествения тип на базата данни, който обикновено е DATE
или DATETIME
тип, който си сътрудничи с DateTime
на PHP обект (и други езици) почти естествено, когато става въпрос за стандартни преобразувания.
За да разясня малко какво имам предвид под стандартни преобразувания:Когато използвате MySQL и изтегляте стойност в PHP, получавате ISO-форматиран низ за дата, от който DateTime
клас анализира в своя конструктор, като ви дава незабавно използваем обект. За разлика от това, за да преминете по маршрута на Unix timestamp, ще трябва да използвате strtotime
, след това date
за да го вкарате в какъвто и формат искате.
По-рано споменах за взаимодействието между нашите PHP системи и .NET системи. Въпреки че няма конкретни проблеми, причинени от използването на клеймо за време, това просто не е практическото решение, тъй като отново използваме база данни, която връща DateTime стойност, която може да бъде изпратена направо надолу. Ако трябваше да преобразуваме това в unix времева марка за вътрешно използване в PHP, ще трябва също да го преобразуваме обратно, ако трябва да изпратим отговор или да изпратим отговор на .NET приложението (или трябва просто да кажа API в този случай), това е клеймо за време и го преобразувайте в края. С помощта на DateTime
като цяло облекчава необходимостта от каквито и да било преобразувания и целият процес на разработка е по-лесен.
И накрая, за да добавите към всичко това, както споменахте в публикацията си, можете да използвате лъскави елементи като DateInterval
, по-лесно часово зониране, по-лесно манипулиране и по-лесно форматиране и т.н., когато използвате DateTime
и с него са свързани обектно-ориентирани партньори в престъплението. В моите очи това е просто по-лесен процес на разработка.
Не вярвам, както казах първоначално, че има "правилен" отговор на това, просто повече от лични предпочитания, базирани на собствения ви стил на кодиране, а коментарите по-горе отразяват моите.
- Не вярвам в това по никакъв начин. Особено с PHP скриптовете, които обикновено са толкова краткотрайни процеси.
Да :)
Вижте коментарите по-горе за базата данни, не е "родно" да се използва Unix Timestamp за тази цел IMO. Можете просто да извикате ->getTimezone
и съхранете това в базата данни, след което използвайте ->setTimezone
когато го издърпате отново.