Myślę, że można na nie odpowiedzieć bardziej szczegółowo. Po pierwsze, DateInterval
metoda konstruktora przyjmuje jeden parametr o nazwie $interval_spec
łańcuch.
DateInterval::__construct ( string $interval_spec )
Ten parametr ma specyfikację opisaną poniżej:
Format zaczyna się od litery P oznaczającej kropkę. Każdy okres trwania jest reprezentowany przez wartość całkowitą, po której następuje oznaczenie okresu. Jeśli czas trwania zawiera elementy czasu, ta część specyfikacji jest poprzedzona literą T.
Istnieje kilka oznaczeń okresu, które są używane w argumencie:
- Y od lat
- M od miesięcy
- D przez kilka dni
- W od tygodni . Są one przeliczane na dni, więc nie można ich łączyć z D.
- H przez wiele godzin
- M przez minuty
- S przez kilka sekund
Zobaczmy przykład z użyciem wskaźników okresu:
- Dwa dni to P2D.
- Dwie sekundy to PT2S.
- Sześć lat i pięć minut to P6YT5M.
Istnieje kolejność, którą należy zachować zgodnie z opisem w dokumencie:
Typy jednostek należy wprowadzać od największej jednostki skali po lewej do najmniejszej jednostki skali po prawej stronie. Tak więc lata przed miesiącami, miesiące przed dniami, dni przed minutami, itd. Zatem jeden rok i cztery dni muszą być przedstawione jako P1Y4D, a nie P4D1Y.
Specyfikację można również przedstawić jako datę i godzinę .
- Rok, dwa miesiące, cztery dni to P0001-02-04T00: 00: 00
Ale wartości w tym formacie nie mogą przekroczyć punktu kumulacji z danego okresu (np. 25 godzin jest nieprawidłowe).
P
ale to odniesienie jest tak zaniżone. Domyślałem oznaczało to okres i szukałemphp.net
dla tego słowa, ja oczywiście nigdy nie dostał do strony konstruktora .. Ale to nie jest określany nadate_format
,DateTime::diff
,DateTime::format
,DateInterval
, oraz szereg ogólnychDate/Time
funkcji. Chciałem wiedzieć, czy są jakieś inne prefiksy, o których warto wiedzieć i niech mnie diabli, gdybym mógł je znaleźć, dopóki nie