kostenloser Webspace werbefrei: lima-city


datetime Format umwandeln

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    date-ideen

    date-ideen hat kostenlosen Webspace.

    Hey Leute,
    ich weiß, eigentlich hätte ich die Lösung im web finden sollen, aber ich hab ewig gesucht und es tag/funktion">funktioniert einfach ned.
    Mein Problem:
    Ich hab eine mysql-Datenbank im Format datetime, also yyyy-mm-dd hh:mm:ss
    Ich hätte gerne: dd.mm.yyyy hh:mm:ss
    Könnt ihr mir da weiterhelfen? Ach ja, die Datensätze sollen als mysql datetime gespeichert bleiben, also brauche ich eine php Funktion bei der Ausgabe...
    thx
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. http://www.nak-webmaster.de/modules.php?name=News&file=article&sid=55
  4. Autor dieses Themas

    date-ideen

    date-ideen hat kostenlosen Webspace.

    Die Funktion hab ich kopiert, aber dabei kam folgendes raus:
    DD hh:mm:ss.MM.YYYY

    Das Problem ist hald, dass die Zeitteile nicht durch - getrennt sind.
    Vielleicht noch ne Idee oder ne Korrektur für die Funktion?
    thx
  5. Speicherst du ein Datum oder einen Zeitstempel in der Datenbank ab.
  6. familie-schiffer

    Kostenloser Webspace von familie-schiffer, auf Homepage erstellen warten

    familie-schiffer hat kostenlosen Webspace.

    zuerst das auslesen, explodieren lassen und dann die funktion auf beides anwenden(entsprechend anpassen)

    mfg
  7. Du darft an die von Karpfen genannte Funktion nicht alles, also yyyy-mm-dd hh:mm:ss übergeben, sondern nur yyyy-mm-dd.
    Also nur die ersten 10 Zeichen. Das könnte man mit substr realiesieren.
  8. familie-schiffer

    Kostenloser Webspace von familie-schiffer, auf Homepage erstellen warten

    familie-schiffer hat kostenlosen Webspace.

    nimm doch statt datetime varchar und fülle es mit date() funktion von php.

    mfg
  9. mach es dir doch einfach:
    Bei der Speicherung von deinen Daten in der MySQL lässt du die Formatierung yyyy-mm-dd hh:mm:ss (Datumsschreibweise: \'Y-m-d H:i:s\'), da es zB u.a. bei Vergleichen besser geeignet ist.

    Beim Auslesen dieser lässt du dir das umwandeln per SQL-Query

    bswp:
    SELECT DATE_FORMAT(myDate, \"%d.%m.%Y %T\") AS myDate FROM table


    Eine weitere Möglichkeit wäre das PHP-basiert über das Datetime-Objekt zu machen:
    /* create DateTime-object */
    $dateTime = date_create($time);
    /* get formatted date-string */
    $new_time = $dateTime->format(\'d.m.Y H:i:s\');
    
    // alternativ:
    // $new_time = date_format($dateTime, \'d.m.Y H:i:s\');


    Es gibt auch noch ein paar andere Funktionen und Möglichkeiten, dies zu erreichen.
    (über date_parse() und viele mehr)

    Ich persönlich verwende die Variante über den SQL-Query. Das \"AS myDate\" ermöglicht dir dabei die normale Verwendung, als wenn es direkt ausgelesen wäre.


    Beitrag geändert: 1.4.2008 12:41:51 von pjhimself


    Beitrag geändert: 1.4.2008 12:42:39 von pjhimself
  10. also du kannst es auch so machen:

    als Beispiel nehm ich jetzt die Variable $Datum, dies definiere ich nun mit:

    $Datum1 = $_POST[\"Datum1\"];


    gleich da drunter kommt dann der Befehl \"explode\" kannst auch split benutzen, wie auch immer, also so:

    $Datum = $_POST[\"Datum\"];
    $dat = explode (\".\", $Datum);


    \"explode\" zerlegt jetzt den eingegebenen Wert, mit dem Zeichen das du im gegeben hast (hier also der Punkt, siehe oben (\".\", $Datum). Als Beispiel: wenn jemand jetzt 12.03.2008 eingibt, zerlegt dir explode die Werte in folgende tags:
    $dat[0] = 12
    $dat[1] = 03
    $dat[2] = 2008

    also nach jedem Punkt teilt es den Wert auf, und den definiert ihn den tags zu, die du gleich brauchst.

    weiter gehts... als nächtes benutzt du den Timestamp-Befehl \"mktime\" damit du die tage,monate,jahr ... festlegen kannst.

    der befehl lautet

    $timestamp = mktime(19,30,15,05,14,2008);
    für die Werte in Klammern musst du jetzt deine Zeit einfügen, unzwar nach der Reihenfolge:
    Stunde, Minute, Sekunde, Monat, Tag, Jahr. Also die Werte die ich gerade gegeben habe wären dann für den : 14.05.2008 19:30 und 15sec.

    also fügst du deine Tags ein,
    $dat[0] für den Tag
    $dat[1] für den Monat
    und
    $dat[2] für das Jahr,

    für die restliche Werte: Stunde, Minute und Sekunde kannst du einfach 0 angeben, weil du ja keine Uhrzeit angeben willst oder?

    also:

    $Datum = $_POST[\"Datum\"];
    $dat = explode (\".\", $Datum);
    
    $timestamp = mktime(0,0,0,$dat[1],$dat[0],$dat[2]);


    vor dem letzten Schritt musst du jetzt noch dein Eintrag in die Datenbank ändern also:

    $eintrag = \"INSERT INTO Datenbanktabelle (Datum) VALUES (\'$Datum\')\";


    du musst jetzt für Datenbanktabelle nätürlich den Namen deiner Datenbanktabelle eintragen,
    für Datum trägst du, halt den Namen ein den du in deiner Datenbanktabelle für das Datum gegeben hast und
    für $Datum trägst du bitte $timestamp ein.

    nun der letzte Schritt... vor der Ausgabe deines Datum aus der Datumbank, kannst du nun angeben wie das Datum ausgegebn werden soll:

    $abfrage = \"SELECT * FROM Datenbanktabelle\";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
        {
         echo date(\"d.m.Y\",$row->Datum);
        }



    mit date() definierst du halt die ausgabe und mit \"d.m.Y\" gibst du die Reihenfolge der Werte an.

    also:

    d ist für Tag des Monats, zweistellig
    m ist für Nummer des Monats, zweistellig
    Y ist für Nummer des Jahrer, vierstellig




    ich hoffe du konntest mein mini-tutorial zur gewünschten Datumsausgabe verstehen, es ist zwar länger erklärt als die Vorschläge der anderen, aber mir kam es hierbei darauf an, dass du die ganzen codes auch kappierst und nicht nur copy&paste und dann was war denn das überhaupt

    naja falls du nicht schon einem Vorschlag der anderen netten Leute hier gefolgt bist, hoffe ich, dass ich dir helfen konnte :biggrin:

    ich schreib imma so viel -.- :blah::blah::blah:
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!