Unix tijd uit XML-file omzetten naar leesbare datum en tijd?
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.
Ik krijg hiermee helemaal geen output.
Dit is het complete script:
Quote:
<span style="font-family: Arial; font-size: 11px; color: #FF0000;">
km/uur<br />
</span>
Code (php)
1
2
3
4
5
6
7
8
9
10
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 />';
?>
$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;">
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.
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.
Gewijzigd op 16/08/2011 09:30:22 door Roland Janzzen