PHP Probleemsche

  • Grummelgrummel, da studier ich mir langsam die Birne wund, lese Helpfiles vor und zurück und finde einfach keine Lösung...


    Ausganslage:


    Datenbank mit div. Einträgen, pro Record jeweils auch einen mit einem Timestamp drin (20041003usw...).


    Problem:


    Wie zum Geier kann ich den jetzt über PHP in ein für normal gebildete Leute wie mich lesbares Format bringen? So im Stil von 03.10.2004, 09:39... ich hab schon date() und dergleichen versucht, aber entweder mach ich es falsch, oder datt geht wirklich nicht.

    EIne Ständerlampe ist eine Stehlampe und keine Genitalbeleuchtung.

  • Ich hab keine Ahnung von PHP, aber du kannst es ja NOOB-Haft machen...


    Einfach die ersten 4 Zahlen hohlen = Jahr, die nächsten 2 = Monat ... und dann darstellen... :D

    In Lyss gibts nen neuen Club ==> http://www.opposition-lyss.ch


    "Speed has never killed anyone, suddenly becoming stationary... That's what gets you. "- JEREMY CLARKSON!


    ''She said she wanted to fulfill every single one of my fantasies. I made a list. Had to type it myself. My assistant threatened to quit.'' - DENNY CRANE!

  • ah sorry, hab gemeint, du hast ein timestamp...
    wenn du einen string wie 20041003 hast, ists klar, dass es mit date nicht geht. Du kannst den Sting wie MiBfinity bereits sagte splitten(mit substr) und direkt ausgeben, oder mit mktime ein timestamp erzeugen und dann mit date wieder in ein string im gewünschten format wandeln :D

  • Ah, und ich dachte, ich würd überhaupt nix mehr peilen...


    muss wohl wirklich so vorgehen wie Mib sagt.

    EIne Ständerlampe ist eine Stehlampe und keine Genitalbeleuchtung.

  • ist es ein standard (unix) timestamp (von der time()-funktion)?
    wenn ja kannst du den ganz einfach formatieren!
    zb:

    Code
    1. date("d.m.y, H:i:s", time());


    wobei 'time()' durch deine timestamp-variabel ersetzt werden
    muss.


    in diesem fall wird
    '10.03.04, 10:18:05'
    ausgegeben.

    Das Problem der Tretminen ist nur schrittweise zu lösen.

    2 Mal editiert, zuletzt von Finn ()

  • Ich weiss ehrlich gesagt nicht, was ich vorher anders gemacht habe, aber jetzt funktionierts tiptop (nach Finns Beispiel). Hmm...


    Danke für die Hilfe!


    Bart: eben genau DAS Feld hab ich ja und möchte es wieder so ausgeben, dass man es ohne fernöstliche Fremdsprachenkentniss lesen kann. Aber Problem is ja jetzt gelöst.



    *EDIT*: Hmm, irgendwie doch noch nicht so ganz...


    Timestamp: 20040305160044
    Ausgabe von PHP gem. Finns Beispiel: 19.01.38, 04:14:07


    MySQL in den Vorkriegsjahren... muss mal die Parametrisierung von date() durchlesen.

    EIne Ständerlampe ist eine Stehlampe und keine Genitalbeleuchtung.

    2 Mal editiert, zuletzt von Armitage ()

  • Basteln rockt. Vor allem wenn man später den Code nochmal anschaut und sich fat krümmt vor lachen... ist mir auch schon passiert... :D

    In Lyss gibts nen neuen Club ==> http://www.opposition-lyss.ch


    "Speed has never killed anyone, suddenly becoming stationary... That's what gets you. "- JEREMY CLARKSON!


    ''She said she wanted to fulfill every single one of my fantasies. I made a list. Had to type it myself. My assistant threatened to quit.'' - DENNY CRANE!

  • include('connect.php');
    $query = "select * from log";
    $qexec = mysql_query($query) or die (mysql_error());
    $result = mysql_fetch_array($qexec);
    $year = substr($result["date"],0,4);
    $month = substr($result["date"],4,2);
    $day = substr($result["date"],6,2);
    $time = substr($result["date"],8,2) . ':' . substr($result["date"],10,2);
    echo $day . '.' . $month . '.' . $year . ' ' . $time;



    So tuts gehen... :D

    EIne Ständerlampe ist eine Stehlampe und keine Genitalbeleuchtung.


  • 20040305160044 bedeutet für date() sekunden die vergangen sind seit einem bestimmten datum (1.1.1970? bin nicht mehr sicher)


    und wenn ich dich wäre würde ich auch in diesem format in die SQL datenbank schreiben (als int 11). (mit time() kriegst du die sekunden)



    geht vieleicht, aber ist ziemlich hässlich ;)


    select * from log <-- wenn ich das sehe kriege ich gänsehaut... und ein referent der uns sql eingetrichtert hat würde dich dafür in stücke reissen ;)

  • Negativ, Column Type Timestamp tut eben das aktuelle Datum angeben, was Du meinst ist ne PHP Funktion, wenn ich mich recht erinnere....


    ---------------
    Aus der MySQL-Help:
    A timestamp. The range is '1970-01-01 00:00:00' to sometime in the year 2037. MySQL displays TIMESTAMP values in YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, or YYMMDD format, depending on whether M is 14 (or missing), 12, 8, or 6, but allows you to assign values to TIMESTAMP columns using either strings or numbers. A TIMESTAMP column is useful for recording the date and time of an INSERT or UPDATE operation because it is automatically set to the date and time of the most recent operation if you don't give it a value yourself.
    ----------------



    Wie Du siehst, kritzelt MySQL Datum und Zeit automatisch in selbigem Format in den Record, muss das Ganze nur noch dechiffrieren.


    Was meine Lösung angeht, sie mag hässlich sein, aber solange mir keiner einen besseren Weg zeigt, lasse ich es so stehen. Einfach mal sagen, die Lösung sei schlecht kann jeder ;).


    Unnnd nen schönen Gruss an euren Teacher - irgendwie wusste ich schon beim posten, dass wegen dem select-Statement noch ein Kommentar kommen würde (schon gesehen, es verabeitet ja nid mal alle erhaltenen Lines, da fehlt noch ne nette While Schlaufe und so weiter). Für ein quick and dirty Check, ob das Datum so ausgegeben wird, wie es soll reicht ein * aber allemal. Und es gibt durchaus Situationen wo ein bluttes "select * from tablename" angebracht ist. Wo es Sinn macht, schränke ich natüüürlich (man will ja nicht die armen Server belasten) die Query jeweils ein.

    EIne Ständerlampe ist eine Stehlampe und keine Genitalbeleuchtung.

  • jo mit time() meinte ich die php funktion. für abfragen, rechnungen und so weiter ist es einfacher in sekunden zu rechnen.


    Falls zu z.B. von einem datum 25 abziehen willst, ist es einfacher wenn du die zeit in sekunden hast. Timestamp, datetime und date in MySQL mit PHP zu benutzen macht für mich wenig sinn.


    Jedem das seine ;)



    Den gruss werde ich nicht ausrichten können.