Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Data] Formatowanie daty i czasu, DATETIME? Timestamp? Strefy czasowe.
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Aktualnie przechowuję datę w formacie datetime w MySQL bądź SQLite. Jest jednak problem. Data jest sztywna - przystosowana tylko dla 1 strefy czasowej.

Funkcja formatująca datę:
http://www.unit1.pl/pb-806

1. Datę można przechowywać jako timestamp. Wtedy w PHP formatujemy ją za pomocą strftime() lub date(), podając znacznik czasu jako drugi parametr.

2. Jeśli news został napisany dzisiaj, zamiast daty powinien wyświetlić się napis "Dzisiaj". W przypadku użycia timestamp raczej nie będzie to łatwe. Gdy datę przechowujemy jako datetime - odsyłam do kodu (link wyżej). (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Zależy mi przede wszystkim na wydajności odczytu i formatowania daty i czasu. Co możecie doradzić?

PS. Pamiętajcie, że czasem czas jest zbędny (ważna tylko data).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
WebCM
post
Post #2





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Zostańmy jeszcze przy formacie YYYY-MM-DD HH:MM:SS (datetime). Przypominam, że skrypt musi być zgodny zarówno z MySQL oraz SQLite (bez pisania 2 zapytań).

Zobacz kod: http://www.unit1.pl/pb-813 - funkcja przyjmuje datę dla strefy GMT. Jeśli jest taka sama jak dzisiaj, wyświetla napis "Dzisiaj". Jest 1 problem. Nie uwzględnia stref czasowych.

Jak dostosować datę do strefy czasowej użytkownika? Czy zamiana na timestamp() i z powrotem do czytelnego formatu jest jedynym wyjściem (np. strtotime() + date() lub obiekt DateTime)? Można też pewnie rozwiązać problem matematycznie (więcej z tym zabawy). Czy ktoś już zmagał się ze strefami czasowymi?

Gdybym przechowywał znaczniki czasu (timestamp) zamiast pełnych dat (datetime), PHP automatycznie poradzi sobie ze strefami czasowymi, lecz za to wyświetlanie "Dzisiaj", "Jutro" stanie się trudniejsze.

nevt: świetnie, że MySQL oferuje takie funkcje, lecz brakuje ich w SQLite bądź mają inne nazwy. Lepiej formatować datę w PHP i być niezależnym od silnika SQL.

Ten post edytował WebCM 21.06.2008, 23:48:57
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 04:29