![]() |
![]() |
![]() ![]()
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). |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 04:29 |