Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC:

meteohub Timestamp aufsplitten 16 May 2010 11:09 #161385

  • benz
  • benz's Avatar Topic Author
  • Visitor
  • Visitor
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

Please Log in to join the conversation.

meteohub Timestamp aufsplitten 16 May 2010 11:26 #161386

  • Tobias Ferrari
  • Tobias Ferrari's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3267
  • Thank you received: 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

Please Log in to join the conversation.

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

meteohub Timestamp aufsplitten 16 May 2010 11:31 #161387

  • benz
  • benz's Avatar Topic Author
  • Visitor
  • Visitor
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

Please Log in to join the conversation.

meteohub Timestamp aufsplitten 16 May 2010 11:40 #161388

  • Tobias Ferrari
  • Tobias Ferrari's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3267
  • Thank you received: 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

Please Log in to join the conversation.

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

meteohub Timestamp aufsplitten 16 May 2010 11:45 #161389

  • benz
  • benz's Avatar Topic Author
  • Visitor
  • Visitor
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

Please Log in to join the conversation.

meteohub Timestamp aufsplitten 16 May 2010 12:02 #161390

  • Tobias Ferrari
  • Tobias Ferrari's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3267
  • Thank you received: 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

Please Log in to join the conversation.

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

meteohub Timestamp aufsplitten 16 May 2010 12:11 #161391

  • benz
  • benz's Avatar Topic Author
  • Visitor
  • Visitor


<?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

Please Log in to join the conversation.

meteohub Timestamp aufsplitten 16 May 2010 12:20 #161392

  • benz
  • benz's Avatar Topic Author
  • Visitor
  • Visitor
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

Please Log in to join the conversation.

meteohub Timestamp aufsplitten 16 May 2010 12:25 #161393

  • Tobias Ferrari
  • Tobias Ferrari's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3267
  • Thank you received: 11
Hoi Bruno

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

Gruss
Tobias

Please Log in to join the conversation.

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

meteohub Timestamp aufsplitten 16 May 2010 12:29 #161394

  • Tobias Ferrari
  • Tobias Ferrari's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3267
  • Thank you received: 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

Please Log in to join the conversation.

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

meteohub Timestamp aufsplitten 23 May 2010 11:16 #161508

  • Oli
  • Oli's Avatar
  • Visitor
  • Visitor
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:

Please Log in to join the conversation.

meteohub Timestamp aufsplitten 23 May 2010 19:15 #161513

  • benz
  • benz's Avatar Topic Author
  • Visitor
  • Visitor
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

Please Log in to join the conversation.

  • Page:
  • 1
  • 2
Moderators: Markus Brotschi
Time to create page: 0.208 seconds
Go to top
JSN Boot template designed by JoomlaShine.com