wieder mal datetime :(

hasefrau

Mitglied
ich bin schon seit stunden am "googlen" und hab mir auch schon die threads übers thema datetime hier durchgelesen, leider konnte ich mein problem aber nich lösen :(

wie bekannt wird das datum als yyyy-mm-dd hh:mm:ss in der datenbank gespeichert.
und ich möchte natürlich das es so ausgegeben wird: hh:mm:ss dd-mm-yyyy

wenn ich diese funktion die ich hier im forum gefunden habe verwende

PHP:
/** 
* Document::splitDateTime() 
* 
* { Description } 
* 
* @param DATETIME mySQL DATETIME 
* @return string 
*/ 
function splitDatetime($datetime) { 
    // DATETIME: 0000-00-00 00:00:00 
    $rgTime = explode(' ',$datetime); 
    $rgTime = array_merge(explode('-',$rgTime[0]),explode(':',$rgTime[1])); 
    $strTime = $rgTime[2].'.'.$rgTime[1].', '.$rgTime[3].':'.$rgTime[4].' Uhr'; 
    // Falls der DATETIME 0 ist 
    if(substr($strTime,0,5) == '00.00') 
    { 
        return ''; 
    } 
    return $strTime; 
}
dann bekomme ich einen Fatal error: Cannot redeclare splitdatetime() (previously declared in /home/xxxxxxx/index.php:115) in /home/xxxxxxx//index.php on line 115

:(


das hier z.b. geht.

PHP:
$date = "2003-06-17 11:59:16"; 
echo 
substr($date, 8, 2) . "." . 
substr($date, 5, 2) . "." . 
substr($date, 0, 4) . " ". 
substr($date, 11, 2) . "" . 
substr($date, 13, 2) . "" . 
substr($date, 15, 2) . "" . 
substr($date, 17, 2) ;

nur was müsste ich hier eingeben das er die datetime-werte aus meiner DB nimmt
-> $date = xxxxx;
 
Zuletzt bearbeitet:
Bei mir geht:

PHP:
function crunch($datum) {
if(eregi("^[0,1,2,3]{1}[0-9]{1}\.[0,1]{1}[0-9]{1}\.[1,2]{1}[0-9]{3}$",$datum)){

ereg( "([0-9]{2})\.([0-9]{2})\.([0-9]{4})", $datum, $regs );
$datum="$regs[3]-$regs[2]-$regs[1]";
}

elseif(eregi("^[1,2]{1}[0-9]{3}-[0,1]{1}[0-9]{1}-[0,1,2,3]{1}[0-9]{1}$",$datum)){
ereg( "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $datum, $regs );
$datum=$regs[3].".".$regs[2].".".$regs[1];
}

return $datum;
}

(hab es aus den Weiten des Internets) , funktioniert in beide Richtungen. ;)
 
Zuletzt bearbeitet:
also ich hab das in einer Include-Datei stehen.

Die wird am Anfang eingelesen und dann wende ich das wie im folgenden Beispiel an:

PHP:
echo("<font face=verdana size=2>".crunch($row['eröffnet'])."</font>");

, nachdem natürlich die Tabelle mit den entsprechenden Feldern ausgewählt wurde, usw.
 
Zuletzt bearbeitet:
hmmmm
also meine zeile hier wandelt ja das aktuelle datum ins datetime-format um:
PHP:
$datetime = date('Y-m-d H:i:s');
und es soll auch weiterhin so in der DB gespeichert bleiben.

aber irgendwie bekomme ich es nicht hin das er bei der ausgabe das datum so darstellt wie ich will :(
 
Du kannst es gleich beim Abfragen der Datenbank ins richtige Format bringen.

Beispiel:

PHP:
SELECT date_format(datum, '"%H:%i%s %d.%m.%Y") as datum FROM tabellenname;

Ich hoffe, dass es so stimmt, habs jetzt nich nochmal probiert. Such ansonsten mal nach sql+date_format
 
ich häts nich für möglich gehalten :D
es klappt
ich hab nur aus
PHP:
SELECT date_format(datum, '"%H:%i%s %d.%m.%Y") as datum FROM tabellenname;
das hier machen müssen:
PHP:
SELECT date_format(datetime, '%H:%i, %d.%m.%Y') as datetime ...
vielen dank
*freu*
 
Freut mich!
Habs auch grad gesehen, hab ich mich mal wieder mit den Tasten und den ' und den " verheddert. Aber der Denkanstoss hat ja gereicht :)
 
hmm aber was mich ein wenig verwundert ist, das bei mir "setlocal" nicht funktioniert ...
wird alles nur auf englisch angezeigt :(

habe alle varianten durch probiert ->
PHP:
setlocale ("LC_TIME","de");
setlocale ("LC_TIME","de_DE");
setlocale ("LC_TIME","g");
setlocale ("LC_TIME","gw");
setlocale ("LC_TIME","german");
bleibt aber weiterhin auf englisch ..
 
ich hab jetzt meinen query verändern müssen um ne weitere abfrage zu machen, nun weiss ich nich so wirklich wie ich
PHP:
date_format(datetime, '%H:%i, %d.%m.%Y') as datetime
hier einfügen soll:
PHP:
$strSQL = "SELECT bm_gbook1.*, bilder.link FROM bm_gbook1 LEFT JOIN bilder ON bilder.name = bm_gbook1.name ORDER BY bm_gbook1.id DESC LIMIT ";
hat da jemand einen vorschlag
 

Neue Beiträge

Zurück