Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Błędy przy konwersji znacznika czasu na postać czytelną., Wykorzystanie FROM_UNIXTIME, jedna maszyna, różne wyniki.
jarek_bolo
post
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

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


Witam.

Taką małą dziwną rzecz mam.
Wpisując to co poniżej:
  1. mysql> SELECT FROM_UNIXTIME(1151701200) AS DATA
  2. -> ;
  3. +---------------------+
  4. | DATA |
  5. +---------------------+
  6. | 2006-06-30 22:59:37 |
  7. +---------------------+
  8. 1 row IN SET (0.00 sec)
  9.  
  10. mysql>


Otrzymuję datę nieodpowiadającą rzeczywistej dacie jaka jest pod tym znacznikiem.
Za pomocą funkcji PHP lub tego konwertera otrzymuję prawidłową datę czyli: 2006-06-30 23:00:00

Ktoś wie dlaczego tak jest? Środowisko to: WinXP, a na nim WAMPSEVER 2.0 (MySQL 5.0.51a, PHP 5.2.5, Apache 2.2.8). Wszystko na jednym kompie.


--------------------
"Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! |
Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
teutates
post
Post #2





Grupa: Zarejestrowani
Postów: 156
Pomógł: 2
Dołączył: 9.09.2006
Skąd: Londyn/Gdynia

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


Proponuje sprawdzic strefe czasowa serwera, zapewne jest inna niz serwera z phpem. Umnie obie daty sa prawidlowe, poniewaz mysql ma strefe czasowa SYSTEM ktoa pobiera z systemu hosta, podobnie jak php.
Pozdrawiam
Go to the top of the page
+Quote Post
jarek_bolo
post
Post #3





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

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


Tak wiem o ustawieniach stref czasowych. I przyznam, że bawiłem się tym, bo początkowo planowałem trzymać wpisy w kolumnach typu timestamp, a te żeby poprawnie działały baza musi mieć ustawioną strefę czasową. Domyślnie jest ona SYSTEM.
Całość jest opisana tutaj, czytałem to już od dechy do dechy.
http://dev.mysql.com/doc/refman/5.0/en/tim...ne-support.html

Ściągnąłem plik z strefami czasowymi do wypełnienia tabeli w bazie danych i z poniższej strefy:
  1. mysql> SELECT @@global.time_zone, @@session.time_zone;
  2. +--------------------+---------------------+
  3. | @@global.time_zone | @@session.time_zone |
  4. +--------------------+---------------------+
  5. | SYSTEM | SYSTEM |
  6. +--------------------+---------------------+
  7. 1 row IN SET (0.00 sec)
  8.  
  9. mysql>


zmieniłem na:
  1. mysql> SET GLOBAL time_zone = 'Europe/Warsaw';


A w kodzie PHP również mam ustawianą strefę czasową, bo przy ustawieniach błędów na STRICT i ALL parser pluje się jeśli tego nie zrobimy.
  1. <?php
  2. date_default_timezone_set( 'Europe/Warsaw');
  3. ?>


Poza tym to jest różnica tylko kilkunastu sekund, gdyby to było z powodu stref czasowych to miał bym różnicę co najmniej jednej godziny.


--------------------
"Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! |
Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!!
Go to the top of the page
+Quote Post
teutates
post
Post #4





Grupa: Zarejestrowani
Postów: 156
Pomógł: 2
Dołączył: 9.09.2006
Skąd: Londyn/Gdynia

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


dziwna sprawa.. ja bym poszukal na mysqlbugs
u mnie wszystko pokazuje sie luxusik:)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 08:14