Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> XML data
Krzychu00011
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 22.05.2011

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


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.
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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. (IMG:style_emoticons/default/wink.gif)

Stąd timestamp zero i data sprzed 40 lat. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Krzychu00011
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 22.05.2011

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


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.
Go to the top of the page
+Quote Post
vandall
post
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.06.2011

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


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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
batman
post
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




To powinno zadziałać.
  1. $date = explode("-", (string)$dane->data);



edit
Do "debugowania" zawsze używaj funkcji var_dump.



edit2
Poza tym sprawdź zawartość $date[2]...
Powód edycji: [batman]:
Go to the top of the page
+Quote Post
Krzychu00011
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 22.05.2011

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


nie wrzuca nadal tej godziny :/
Go to the top of the page
+Quote Post
batman
post
Post #7





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Pierwsza lekcja z czytania ze zrozumieniem:
Cytat
Poza tym sprawdź zawartość $date[2]


Kontynuując naukę "debugowania" w PHP, co zwraca var_dump($date) ?
Go to the top of the page
+Quote Post
Krzychu00011
post
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 22.05.2011

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


$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. :/
Go to the top of the page
+Quote Post
batman
post
Post #9





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




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ć.
Go to the top of the page
+Quote Post

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: 21.12.2025 - 07:49