Badboy46: DATETIME mit strtotime,substr oder mit explode bearbeiten?

Hallo,

leider ist mein andere Beitrag http://forum.de.selfhtml.org/archiv/2004/8/t86572/ schon ins Archiv geruscht

ich bekomm aus einer Session ein DATETIME String
Beispiel: 2004-08-04 19:28:07

ich brauche einmal 04.08.2004 und dann 18:28
ich hab 2 Lösungsansätze laut den anderen Thread

$datum[0] soll das Datum beinhalten und $datum[1] die Uhrzeit

===============================================
#$time = $_SESSION[_SESSIONNAME][_SESSIONDATA]['_fehlversuchzeit'];
$time = '2004-08-04 19:28:07';

#Lösungsansatz 1
function ansatz1($a){
  $b[0] = substr($a, 8, 2).'.'.substr($a, 5, 2).'.'.substr($a, 0, 4);
  $b[1] = substr($a, -8, -3);
  return $b;
}
$ansatz1 = ansatz1($time);
print $ansatz1[0].' -> '.$ansatz1[1].'<br >';

#Lösungsansatz 2
function ansatz2($a){
  $b = strtotime($a);
  $c[0] = date('d.m.Y',$b);
  $c[1] = date('H:i',$b);
  return $c;
}
$ansatz2 = ansatz2($time);
print $ansatz2[0].' -> '.$ansatz2[1].'<br >';

#Lösungsansatz 3
function ansatz3($a){
  $b = explode(' ',$a);
  $c = explode('-',$b[0]);
  $d = explode(':',$b[1]);
  $e[0] = $c[2].'.'.$c[1].'.'.$c[0];
  $e[1] = $d[0].':'.$d[1];
  return $e;
}
$ansatz3 = ansatz3($time);
print $ansatz3[0].' -> '.$ansatz3[1].'<br >';

welcher Lösungsantz ist zu empfehlen/nicht zum empfehlen, bzw. von der Geschwindigkeit die schnellste/langsamste
Bei Lösungsansatz 1 hätte man den Vorteil, dass man mit'n Datum noch mehr machen könnte zur Späteren Zeit z.B. Wochennr. anzeigen lassen etc.
kann man die Lösungsansätze noch optimieren?
habt Ihr vielleicht noch andere Lösungsansätze?
was würdet ihr nehmen?

Fragen über Fragen ;-)

  1. Hello,

    ich hatte Dir schon einmal darauf geantwortet:

    die Lösung mit substr() wird die billigste sein und die mit den Zeitfunktionen die teuerste.

    Wissen kannst Du das nur, wenn Du mal ein Messscript baust, in der jede Möglichkeit mehrere Male hintereinder ausgeführt wird und dieses Messscript dann auch mehrmals ausführst (wegen der Störung durch andere Prozesse).

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hallo Tom,
      erstmal danke für deien Antwort.

      die Lösung mit substr() wird die billigste sein und die mit den Zeitfunktionen die teuerste.

      hm... kann man die mit substr() noch irgendwie optimieren?
      denn da muss ich den String ja 4mal mit substr() bearbeiten

      Wissen kannst Du das nur, wenn Du mal ein Messscript baust, in der jede Möglichkeit mehrere Male hintereinder ausgeführt wird und dieses Messscript dann auch mehrmals ausführst (wegen der Störung durch andere Prozesse).

      wie baut man so ein Messscript? ich habe soetwas noch nicht gemacht, habe auch keinen Ansatz, wonach ich bei http://de3.php.net schauen müsste

      1. hi,

        wie baut man so ein Messscript? ich habe soetwas noch nicht gemacht, habe auch keinen Ansatz, wonach ich bei http://de3.php.net schauen müsste

        http://dclp-faq.de/q/q-code-performance.html hilft weiter.

        gruß,
        wahsaga

        --
        I'll try being nicer if you'll try being smarter.
        1. Hallo,

          wie baut man so ein Messscript? ich habe soetwas noch nicht gemacht, habe auch keinen Ansatz, wonach ich bei http://de3.php.net schauen müsste

          http://dclp-faq.de/q/q-code-performance.html hilft weiter.

          danke, werde das bei Zeiten mal durchprobieren

      2. Hi Badboy!

        wie baut man so ein Messscript? ich habe soetwas noch nicht gemacht, habe auch keinen Ansatz, wonach ich bei http://de3.php.net schauen müsste

        Schau dir mal die Funktion microtime bei php.net an: http://de3.php.net/manual/de/function.microtime.php

        Das dort gefunde Messscript ist eigentlich ganz brauchbar.

        Grüße,
        Fabian St.

        --
        Endlich online: http://fabis-site.net
        --> XHTML, CSS, PHP-Formmailer, Linux
        Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
      3. Hello,

        die Lösung mit substr() wird die billigste sein und die mit den Zeitfunktionen die teuerste.

        hm... kann man die mit substr() noch irgendwie optimieren?
        denn da muss ich den String ja 4mal mit substr() bearbeiten

        Funktionen, die PHP innerhalb eines Scriptes benutzt, werden cached solange sie nicht zuviel Speicher verbrauchen. Der nochmalige Aufruf geht jedenfalls schneller, ald er erste.

        Da PHP keinen direkten Zugriff auf den Speicher und auch keine Structs gestattet, fällt mir da uch nix besseres ein.

        Wissen kannst Du das nur, wenn Du mal ein Messscript baust, in der jede Möglichkeit mehrere Male hintereinder ausgeführt wird und dieses Messscript dann auch mehrmals ausführst (wegen der Störung durch andere Prozesse).

        wie baut man so ein Messscript? ich habe soetwas noch nicht gemacht, habe auch keinen Ansatz, wonach ich bei http://de3.php.net schauen müsste

        Damit mit den Theorie-Profis nicht erst wieder ein Disput entsteht, sie hier auch darauf hingewiesen, dass man das in der Theorie anders löst. Da muss der Preis pro Statement ermittelt werden. Aber für eine einfache Mittelung des Preises reicht auch solch ein "Messverfahren".

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
    2. Hallo,

      kennst du noch mehr Ansätze, wie man dies lösen könnte?

      mich würde mal interessieren, mit wieviel unterschiedlichen Ansätzen man bei dieser Aufgabe zur Lösung kommt :-)

      1. Hallo,

        kennst du noch mehr Ansätze, wie man dies lösen könnte?

        Wenn Du Einfluß auf die Art der Zeitangabe hast, dann solltest Du einen Timestamp ablegen, der läßt sich am einfachsen (daten("ANGABEN"[, int Timestamp])) konvertieren.

        Gruß aus Berlin!
        eddi

        --
        Manchmal trifft es einen doch ganz unverhofft t86591:
        > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
        Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)