Jak formatować datę w PHP tak aby wyglądała jak chcemy? W tym artykule postaram się dokładnie to omówić wraz z niektórymi funkcjami które można wykorzystać przy wyświetlaniu daty.
W przypadku aplikacji internetowych, skryptów i innych tego typu rzeczy, możliwość swobodnego operowania datą i czasem okazuje się być bardzo pomocna. Przykładowo przy rejestracji użytkowników, przy zapisywaniu postów na forum, lub nawet przy logowaniu do konta. Jak z tego korzystać? Ja osobiście proponuję używać znacznika czasu, dlaczego? To bardzo proste, jest w nim zapisana ilość sekund które upłynęły od początku ery Unixa, czyli dzięki niemu i odpowiednim funkcjom formatującym datę możemy uzyskać datę w jakim tylko chcemy formacie z dokładnością do jednej sekundy!
Znacznik czasu:
Jak z niego korzystać… Jeżeli zapisujemy dane do bazy danych jest do tego specjalna funkcja, np.: w MySQL jest to:
| timestamp() |
ale jest ona aktualizowana przy zmianie wpisu w danym wierszu, czego możemy nie chcieć. Dlatego można to równie dobrze robić z poziomu PHP przy użyciu funkcji:
| time() |
funkcja zwraca liczbę całkowitą która reprezentuje znacznik czasu. Tą liczbę można spokojnie zapisać do bazy danych, a po odczytaniu dowolnie sformatować.
Funkcje formatowania daty:
Do formatowania daty, ściślej mówiąc wyciągania jej ze znacznika czasu możemy wykorzystać funkcję:
| date() |
Jako argumenty podajemy format wyświetlanej daty, a drugi opcjonalny znacznik czasu. W przypadku gdy nie podamy drugiego argumentu zostanie użyty aktualny znacznik czasu.
Formatowanie daty:
Formatować możemy każdy element daty, rok, miesiąc, dzień godzinę itp. itp. Służą do tego odpowiednie znaki.
Rok Możemy wyświetlać w kilku postaciach:
– czterocyfrowej – Y np. 1998
– dwucyfrowej – y np. 98
Dodatkowo możemy sprawdzić czy jest to rok przystępny – L – jeżeli tak zwraca „1” jeżeli nie „0”
Litera – z – zwraca aktualny dzień roku
Miesiąc:
– dwucyfrowo z zerem – m – np. 07
– dwucyfrowo bez zer – n – np. 7
– Słownie (po angielsku) – F – February
– Słownie w skróconej formie (po angielsku) – M – Feb
Dzień miesiąca możemy wyświetlać następująco:
– dwucyfrowo z początkowym zerem – d – np. 04
– dwucyfrowo bez początkowego zera – j – np. 12
Dodatkowo możemy sprawdzić ile jest dni w danym miesiącu – t – np.28
Dzień tygodnia:
– w postaci numerycznej (0-niedziela; 6 – sobota) – w – np.6
– Dzień tygodnia słownie (po angielsku) – l – np. Friday
– Dzień tygodnia słownie (po angielsku) w skróconej postaci – D – np. Fri
Dodatkowo możemy wyświetlić przyrostek dla liczebników w języku angielskim – S – np. th
Godziny:
– W formacie 12-godzinnym – h – np. 12 (od 01 do 12)
– W formacie 12-godzinnym bez zer – g – np. 7 (od 1 do 12)
– W formacie 24-godzinnym – H – np. 22 (od 00 do 23)
– W formacie 24-godzinnym bez zer – G – np. 8 (od 0 do 23)
Minuty – i – np. 33 (od 00 do 59)
Sekundy – s – np. 44 (od 00 do 59)
Inne:
– a – Wyświetla am lub pm
– A – Wyświetla AM lub PM
– T – Ustawienie strefy czasowej na serwerze np. MDT
– U – Ilość sekund od początku epoki
– Z – Przesunięcie strefy czasowej w sekundach (od -43200 do 43200)
To tyle jeśli chodzi o formatowanie daty.
W polu ze znakami formatującymi datę (w argumencie funkcji) możemy używać innych znaków, np. kropek „.” myślników „-” itp., one nie będą brane pod uwagę.
W przykładzie wygląda to następująco:
| <?php $znacznik = time(); echo date(„d – m – Y | G:i:s”, $znacznik); ?> |
Powyższy przykład zadziała mniej więcej tak:
| 24.11.1986 | 22:11:56 |
To tyle jeśli chodzi o formatownie daty…
