Unix tijd uit XML-file omzetten naar leesbare datum en tijd?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roland Janzzen

Roland Janzzen

13/08/2011 23:58:38
Quote Anchor link
Hallo,

Ik heb een scriptje wat een XML-file uitleest.
De XML-file wordt geregeld ververst en ook elke keer opnieuw uitgelezen.
Helaas geeft de XML-file een 'unix timestamp' retour.
Ik wil dit graag in een leesbare datum en tijd hebben.
Hoe kan ik dit nu het beste oplossen?

Met preg_match wordt de data uit de XML-file gehaald, zo dus:
preg_match('#(<time>(.*)</time>)#', $content, $match);

Als ik nu met echo e.d. werk, dan krijg ik dus alleen de unix-timestamp in cijfers te zien, dat is natuurlijk niet de bedoeling, ik wil graag de complete datum hebben en tijd. Ik ben al een paar dagen bezig, heb op php.net gekeken bij 'date' en 'time', maar ik kom er niet uit, ik krijg geen leesbare datum tevoorschijn.

In mijn zoektocht heb ik ook begrepen dat het mogelijk moet zijn om de tijd weer te geven volgens de lokale tijd, dus niet in UTC o.i.d.

Kan iemand mij vertellen hoe ik de timestamp goed weer kan geven?
Alvast bedankt voor de aandacht.

Roland.
 
PHP hulp

PHP hulp

24/11/2024 01:47:52
 
Jelmer -

Jelmer -

14/08/2011 00:05:19
Quote Anchor link
Werkt dit goed genoeg, of gaan hier de timezones mis? PHP zou zelf de timezone van een unix timestamp moeten herkennen en je standaard timezone van de server moeten gebruiken voor de datum in tekst. (zie ook date_default_timezone_set)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo date('d-m-Y H:i:s', $unix_timestamp);
?>
 
Roland Janzzen

Roland Janzzen

14/08/2011 00:25:04
Quote Anchor link
Dank voor je reactie, maar helaas, het werkt niet.
Ik krijg hiermee helemaal geen output.

Dit is het complete script:
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

$content
= file_get_contents('http://hier-staat-een-url&format=xml');

preg_match('#(<speed>(.*)</speed>)#', $content, $match);
preg_match('#(<time>(.*)</time>)#', $content, $match1);

echo '<span style="font-family: Arial; font-size: 11px; color: #000000;"><b>Roland mobiel is voor het laatst gehoord:</b></span><br />';

?>

<span style="font-family: Arial; font-size: 11px; color: #FF0000;">

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $match[1];
?>

km/uur<br />

</span>


Zoals je ziet, de snelheid (speed) wordt keurig verwerkt en weergegeven. Nu wil ik alleen nog een leesbare datum hebben. Helaas wordt de tijd dus in unix-format in de XML-file gezet waardoor deze niet direct bruikbaar is. Hoe zet ik deze nu dus om in een leesbare tijd en dan nog het liefst in de lokale tijdzone?

Roland.
 
Noppes Homeland

Noppes Homeland

14/08/2011 09:43:06
Quote Anchor link
xml files haal je niet op met file_get_contents maar met de daartoe specifieke functies:

http://www.php.net/manual/en/domdocument.loadxml.php
http://www.php.net/manual/en/function.simplexml-load-file.php

daarna volgt natuurlijk het doorlopen van het resultaat van die functies

Dan hoef je ook niet met een preg_match te kloten...

daarnaast kom je maar zelden unix_timestamps tegen in een xml file, waardoor de geboden oplossing van Jelmer ook niet gaat lukken

En dan nog een les: post altijd relevante code + aanverwante zaken zoals in dit geval 2 records van de xml file, ter ondersteuning van je vraag.

Als je dat namenlijk niet doet dan moeten we gaan zitten gisssen en krijg je dus ook uitlopende antwoorden waar je niets aan zult hebben.
 
Roland Janzzen

Roland Janzzen

16/08/2011 00:36:21
Quote Anchor link
-
Gewijzigd op 16/08/2011 09:30:22 door Roland Janzzen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.