Krzychu00011
11.06.2011, 11:29:31
Witam, mam problem ze zczytaniem daty z pliku XML do PHP. Wszystko inne ładnie zcytuje lecz właśnie z tą datą mam problemy.
Widok daty w XML:
<data>2011-02-24 20:35:14</data>
Widok kodu PHP:
$date = explode("-", $dane->data);
$data=date("Y-m-d H:i:s", mktime(0,0,0,$date[1], $date[2], $date[0]));
Po wywołaniu
echo $data;
Wyświetla mi się ciągle 1970-01-01 01:00:00
Czy wiek ktoś może gdzie mam błąd w tym kodzie PHP? Proszę o pomoc.
erix
11.06.2011, 11:47:32
Prawdopodobnie w
$dante->data nie masz tego, czego potrzebujesz. Jak nie ma jakiejś zmiennej, PHP wyrzuca notice i zwraca do kodu wartość null, która rzutowana na inta wynosi zero.

Stąd timestamp zero i data sprzed 40 lat.
Krzychu00011
11.06.2011, 12:09:06
echo $dane->data ;
wyświetla poprawną date,
coś jest nie tak z tą linijką:
$data=date("Y-m-d H:i:s", mktime(0,0,0,$date[1], $date[2], $date[0]));
i nie wiem co. :/
rok, misiac i dzień mi wrzuca do bazy ,
godziny , minuty i sekundy mi nie wrzuca i nie wiem co jest.
vandall
11.06.2011, 12:15:46
zaryzykuje stwierdzenie, że godziny minuty i sekundy wrzucamy w pierwsze parametry mktime()... ale wydaje mnie się, że date("format", strtotime($date)); mogłoby też tu zadziałać...
pzdr
batman
11.06.2011, 12:18:49
To powinno zadziałać.
$date = explode("-", (string
)$dane->data);
editDo "debugowania" zawsze używaj funkcji
var_dump.
edit2Poza tym sprawdź zawartość $date[2]...
Krzychu00011
11.06.2011, 14:31:15
nie wrzuca nadal tej godziny :/
batman
11.06.2011, 14:45:33
Pierwsza lekcja z czytania ze zrozumieniem:
Cytat
Poza tym sprawdź zawartość $date[2]
Kontynuując naukę "debugowania" w PHP, co zwraca var_dump($date) ?
Krzychu00011
11.06.2011, 14:53:39
$date[2] zwraca 24
var_dump($date) zwraca array(3) { [0]=> string(4) "2011" [1]=> string(2) "02" [2]=> string(11) "24 20:35:14" }
nadal nie wiem jak to zrobić z tą godziną, minutami i sekundami. :/
batman
11.06.2011, 15:03:05
To co napisałeś nie ma prawa istnieć w naszym wszechświecie.
Zastosuj poradę @vandall-a, czyli date("format", strtotime($date)), w miejscu "format" wpisując poprawny format daty, jaki chcesz uzyskać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.