Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1
  • 2

THEMA:

meteohub Timestamp aufsplitten 16 Mai 2010 11:09 #161385

  • benz
  • benzs Avatar Autor
  • Besucher
  • Besucher
Ein ähnlicher Threat über dieses Thema gab es hier auch im Zusammenhang mit der meteobase ( Link ).

Hier nun mein Code um zu illustrieren, was ich meine. In diesem PHP werden zwei verschiedene Zeitformate aufgesplittet. Das eine klappt, das andere natürlich nicht. Da das Skript ja gar nicht weiss, was es da aufzusplitten gibt...

<!-- Zugriff auf die XML-Datei -->
<?php $wetterdaten = "20090607161234"; ?>

<!-- Zugriff auf die UNIX TIMESTAMP -->
<?php $testdatum = "2009-06-07 16:12:34";?>

<!-- XML-Datei Timestamp -->
<?php
// Variable holen
list($datum, $zeit) = split(' ', $wetterdaten->data[5]->item[76]);

// Datum
$datum=explode("-",$datum);
$datum=$datum[2].$datum[1].$datum[0];

//Zeit
$zeit=explode(":",$zeit);
$zeit=$zeit[0].":".$zeit[1];
?>
<h1>Timestamp 20090607161234</h1>
<p>Wird hier nicht korrekt wiedergegeben:</p>
<?php echo "". $datum ." um ". $zeit . " Uhr";?>
<br /><br /><br /><br />

<!-- meteoBase Timestamp -->
<?php
// Variable holen
list($datum, $zeit) = split(' ', $testdatum);

// Datum
$datum=explode("-",$datum);
$datum=$datum[3].".".$datum[2].".".$datum[1];

//Zeit
$zeit=explode(":",$zeit);
$zeit=$zeit[0].":".$zeit[1];
?>
<h1>Timestamp 2009-06-07 16:12:34</h1>
<p>Wird hier korrekt wiedergegeben:</p>
<?php echo "". $datum ." um ". $zeit . " Uhr";?>


Gibt es da ein PHP-Profi, der mir bei diesem Problem helfen könnte?

Gruss benz

Bitte Anmelden um der Konversation beizutreten.

meteohub Timestamp aufsplitten 16 Mai 2010 11:26 #161386

  • Tobias Ferrari
  • Tobias Ferraris Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 3267
  • Dank erhalten: 11
Hoi Bruno

Ein interger Unix-Timestamp ist nicht verfügbar?

ISO-Datum: 2009-06-07 16:12:34
Unix Timestamp: 1244383954

Damit wäre die Umrechnung viel einfacher...

Gruss
Tobias

Bitte Anmelden um der Konversation beizutreten.

Der Weise sagt nicht alles was er denkt, aber er denkt alles was er sagt.
www.wetterstation-wohlen.ch

meteohub Timestamp aufsplitten 16 Mai 2010 11:31 #161387

  • benz
  • benzs Avatar Autor
  • Besucher
  • Besucher
Nein leider bietet das die XML-Ausgab der meteohub-Software für diese Werte nicht (Siehe auch mein Variablen-Katalog von gestern)!

Ich doktere gerade an der Möglichkeit, aus der Zeichenkette einzelne Zeichen herauszufischen. Wenn ich also die Uhrzeit brauche, muss ich immer die 9. und 10. Zahl herausfischen und für die Minuten die 11. und 12.

Ich habe dies mal mit der Befehl $string und substr versucht, bin aber noch nicht weiter...

Gruss benz

Bitte Anmelden um der Konversation beizutreten.

meteohub Timestamp aufsplitten 16 Mai 2010 11:40 #161388

  • Tobias Ferrari
  • Tobias Ferraris Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 3267
  • Dank erhalten: 11
Hoi Bruno

Das ist schade...

Nunja:


<?php
$wetterdaten = "20090607161234";

$jahr = substr($wetterdaten, 0, 4);
$monat = substr($wetterdaten, 4, 2);
$tag = substr($wetterdaten, 6, 2);
$stunde = substr($wetterdaten, 8, 2);
$minute = substr($wetterdaten, 10, 2);
$sekunde = substr($wetterdaten, 12, 2);
?>


Gruss
Tobias

Bitte Anmelden um der Konversation beizutreten.

Der Weise sagt nicht alles was er denkt, aber er denkt alles was er sagt.
www.wetterstation-wohlen.ch

meteohub Timestamp aufsplitten 16 Mai 2010 11:45 #161389

  • benz
  • benzs Avatar Autor
  • Besucher
  • Besucher
Hoi Tobias

Genau so geht es! Hier das Beispiel, wenn ich Uhrzeit darstellen möchte, wann das Temperaturmaximums innerhalb 24 Stunden erreicht worden ist.
Ich verwendete dafür die XML-Variable: ->data[5]->item[76]:


<?php
$xml = simplexml_load_file('filename.xml');

$jahr = substr($xml->data[5]->item[76], 0, 4);
$monat = substr($xml->data[5]->item[76], 4, 2);
$tag = substr($xml->data[5]->item[76], 6, 2);
$stunde = substr($xml->data[5]->item[76], 8, 2);
$minute = substr($xml->data[5]->item[76], 10, 2);
$sekunde = substr($xml->data[5]->item[76], 12, 2);

echo "Beispiel Zeit Temperaturmax (24h): ".$stunde.":".$minute." Uhr.";
?>


Schade, geht es nicht schöner... Aber so geht es wenigstens!

Danke für die Unterstützung Tobias!

Viele Grüsse aus der Nachbarschaft!
Bruno

Bitte Anmelden um der Konversation beizutreten.

meteohub Timestamp aufsplitten 16 Mai 2010 12:02 #161390

  • Tobias Ferrari
  • Tobias Ferraris Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 3267
  • Dank erhalten: 11
Hoi Bruno

Es gibt noch eine kürzere Variante:

<?php
$testdatum = "2009-06-07 16:12:34";
list($jahr,$monat,$tag,$stunde,$minute,$sekunde) = split('[- :]', $testdatum);
?>


Gruss
Tobias

Bitte Anmelden um der Konversation beizutreten.

Der Weise sagt nicht alles was er denkt, aber er denkt alles was er sagt.
www.wetterstation-wohlen.ch

meteohub Timestamp aufsplitten 16 Mai 2010 12:11 #161391

  • benz
  • benzs Avatar Autor
  • Besucher
  • Besucher


<?php
$testdatum = "2009-06-07 16:12:34";
list($jahr,$monat,$tag,$stunde,$minute,$sekunde) = split('[- :]', $testdatum);
?>


Hoi Tobias
Meines Erachtens geht leider die kürzere Variante eben nicht, weil ja keine "-" und ":" vorhanden sind.
Mein Datumsformat ist ja eben dieses 201005121054
So weiss das Skript nicht, wo abschneiden... Oder?

Gruss benz

Bitte Anmelden um der Konversation beizutreten.

meteohub Timestamp aufsplitten 16 Mai 2010 12:20 #161392

  • benz
  • benzs Avatar Autor
  • Besucher
  • Besucher
Eigentlich kann ich damit gut leben. Wenn man nur die Uhrzeit braucht sieht mein Code trotzdem sehr schlank aus, weil man ja die anderen Werte wegstreichen kann. So brauche ich nur zwei Zeilen Code, wenn ich zum Beispiel die Stunde und Minute aufrufen möchte:

$stundehmin = substr($wetterdaten->data[5]->item[102], 8, 2);
$minutehmin = substr($wetterdaten->data[5]->item[102], 10, 2);


Der Aufruf für die XML-Tabelle geschieht ja eh ganz am Anfang.

Also ich kann damit eigentlich gut leben.

Gruss
Bruno

Bitte Anmelden um der Konversation beizutreten.

meteohub Timestamp aufsplitten 16 Mai 2010 12:25 #161393

  • Tobias Ferrari
  • Tobias Ferraris Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 3267
  • Dank erhalten: 11
Hoi Bruno

Ouuuups, da bin ich jetzt irgendwie wieder vom Unix Timestamp ausgegangen, sorry... :o

Gruss
Tobias

Bitte Anmelden um der Konversation beizutreten.

Der Weise sagt nicht alles was er denkt, aber er denkt alles was er sagt.
www.wetterstation-wohlen.ch

meteohub Timestamp aufsplitten 16 Mai 2010 12:29 #161394

  • Tobias Ferrari
  • Tobias Ferraris Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 3267
  • Dank erhalten: 11
Hoi Bruno


$stundehmin = substr($wetterdaten->data[5]->item[102], 8, 2);
$minutehmin = substr($wetterdaten->data[5]->item[102], 10, 2);


Diese Code sieht sauber aus und ist optimal, wenn Du nur die Zeit brauchst. Wenn das Datum noch hinzu kommen soll, wie bei Allzeitstatistiken, sind es bereits 5 Zeilen Code pro Messwert. Doch da hast Du geschrieben, dass Du diese ja eh in einer DB speichern möchtest, dann wird der Code wieder schlanker. :-)

Gruss
Tobias

Bitte Anmelden um der Konversation beizutreten.

Der Weise sagt nicht alles was er denkt, aber er denkt alles was er sagt.
www.wetterstation-wohlen.ch

meteohub Timestamp aufsplitten 23 Mai 2010 11:16 #161508

  • Oli
  • Olis Avatar
  • Besucher
  • Besucher
Hallo zusammen,
so der Pfingstsonntag durchblick.
Nun ich habe mich den timestamp von Meteohub etwas mehr beschäftigt. Und wollte ich das ich das Datum und die dazugehörige Zeit bei der max und min Werte.
Nun mit diesem Zeitstempel machte es natürlich nicht viel Sinn :20100523083335

Ok nahm ich meine PHP-Bücher und fing mal an zu Coden, aber schnell merkte das diese ohne Ende viel code ergibt. Tja jetzt wollte ich schon den Meteohub programmieren schreiben ob es den nicht möglich wäre diees Datum wie in Actual Datensätze darzustellen. Dann fand ich diesen Forumbeitrag:

http://www.meteohub.de/joomla/index.php?option=com_fireboard&Itemid=32&func=view&id=7844&catid=8

Tja nun ergab sich natürlich dieses Resultat:

[code:tunvagel][month1_th0_tempmax_time#GH].[month1_th0_tempmax_time#EF] [month1_th0_tempmax_time#IJ]:[month1_th0_tempmax_time#KL][/code:tunvagel]

mit diesen Platzhalter er gibt sich ein Resultat: 22.05 17:02

Eigentlich ganz einfach: Das ABC

20100523083335
ABCDEFGHIJKLMN
Nun kann man die Werte xbelibig darstellen. Tja muss man auch erstmal darauf kommen. Im Handbuch auf Seite 69 beschrieben.

Und wiedereinmal heisst es Sysop reads Document.

Gruss Oli :schlaumeier:

Bitte Anmelden um der Konversation beizutreten.

meteohub Timestamp aufsplitten 23 Mai 2010 19:15 #161513

  • benz
  • benzs Avatar Autor
  • Besucher
  • Besucher
Hallo Oli

Jetzt, wo ich das lese, ist es mir auch sonnenklar! Und ja, dass habe ich doch schon längst gelesen. Doch hat sich mir diese Information aus dem Handbuch erst jetzt erschlossen! Manchmal sieht man vor lauter Wald die Bäume nicht mehr! :-D

Ja nu, jetzt ist meine Seite halt für das Splitten zuständig... ;-)

Aber gut zu wissen! Danke Oli!

Gruss benz

Bitte Anmelden um der Konversation beizutreten.

  • Seite:
  • 1
  • 2
Moderatoren: Markus Brotschi
Ladezeit der Seite: 0.184 Sekunden
Zum Seitenanfang
JSN Boot template designed by JoomlaShine.com