![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 9.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich,
pytanie moje dotyczy pobierania z bazy danych daty. W bazie mysql istnieje kolumna typu Date w formacie 0000-00-00. Pobierając z niej datę i konwertując poprzez date("d-m-Y", strtotime($rekord[4])) dla dat starszych niż 1900-01-01 otrzymuję wynik 1970-01-01. Rozwiązanie przy użyciu mysql DATE_FORMAT nie wchodzi w grę. P.S. Google i wyszukiwarka już sprawdzone, nie znajduję tego co mi jest potrzebne. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie używaj funkcji strtotime, bo ona daje w wyniku tzw. UNIX timestamp, a więc obsługuje daty z epoki UNIX'a.
Właściwie to dziwi mnie, że "głupieje" dopiero przy datach przed 1900 r., bo powinna "zgłupieć" już przy dacie sprzed 1970 r. Do sformatowania daty korzystaj z funkcji MySQL. Zobacz stronę: http://dev.mysql.com/doc/refman/5.1/en/dat...-functions.html a na niej funkcję DATE_FORMAT(). MySQL obsługuje daty od 1000 r., więc z datami przed 1900 nie powinno być problemu. Uwaga: W ten sposób dostajesz datę jako string, ale w takim formatowaniu jak chciałeś i ew. sortowanie wg takiego stringu będzie nie w porządku kalendarzowym. Jeżeli chcesz, aby ta data była także kluczem sortowania, to prawdopodobnie: - na liście SELECT trzeba ująć kolumnę daty bez żadnej funkcji, - zrobić sort po tej "nieprzetworzonej" dacie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 13:07 |