PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mySQL-Timestamp umformatieren


KTB
30.08.2006, 15:08:55
Hallo zusammen, habe mal ne schnelle Frage,
wie kann ich den mySQL-Timestamp am schnellsten/besten umformatieren?
20060815141319
So sieht der Timestamp momentan aus. Schön wäre es wenn man hh:mm:ss tt.mm.yyyy daraus machen könnte. Gibt es eventuel eine Funktion die das kann und ich nicht kenne? :)

Indyk
30.08.2006, 15:12:28
ich würde an deiner stelle den UNIX_TIMESTAMP
benutzen, den kannst du bequem mit

echo date("H:i:s",$timestamp); // hh:mm:ss

oder

echo date("d.m.Y",$timestamp); // tt.mm.yyyy


umwandeln
und es stehen dir noch ettliche andere formate zu verfügung
functions beschreibung (http://de.php.net/manual/en/function.date.php)

KTB
30.08.2006, 15:19:53
Ich weiß, ich habe aber nunmal den anderen und dafür suche ich eine Lösung.

Indyk
30.08.2006, 15:24:42
na wenn du so auf deinem mysql_timestamp behaarst:
hatten wir schon (http://www.selfphp.de/forum/showthread.php?t=8115)

KTB
30.08.2006, 16:16:32
Dankeschön, danach habe ich gesucht und nicht gefunden ~.~

bitshock
31.08.2006, 02:31:35
ich mach das immer so... oder bin ich jetzt am thema vorbei?!

$DATUM = date("d.m.Y H:i:s", strtotime($varDatumAusDB));

KTB
31.08.2006, 09:58:56
Nein, das funktioniert leider nicht, da diese Funktion die "Zahlenkette" nicht als Datum erkennt.

bitshock
31.08.2006, 20:18:23
Sehe gerade, dasss Dein Timestamp so :

20060815141319
So sieht der Timestamp momentan aus.
ohne Trennzeichen ist... dann funktioniert das natürlich nicht, habe einen DATETIME aus mySQL gemeint..

MatMel
31.08.2006, 20:44:34
Wie wärs mit:


function mygettime( $timestamp )
{

settype($timestamp, "string"); // nur der vollständigkeit halber

if( strlen($timestamp) != strlen("20060815141319") ) // zu faul zum zählen ;)
{
return false;
}

ret['Y'] = substr($timestamp, 0 , 4);
ret['m'] = substr($timestamp, 4 , 2);
ret['d'] = substr($timestamp, 6 , 2);
ret['H'] = substr($timestamp, 8 , 2);
ret['i'] = substr($timestamp, 10 , 2);
ret['s'] = substr($timestamp, 12 , 2);

return $ret;

}

meikel (†)
01.09.2006, 00:12:14
ich mach das immer so... oder bin ich jetzt am thema vorbei?!
Ja. MYSQL_TIMESTAMP != UNIX_TIMESTAMP

meikel (†)
01.09.2006, 00:13:47
Wie wärs mit:
Das gibt ne Notiz. Das nicht:

function mygettime( $timestamp )
{

settype($timestamp, "string"); // nur der vollständigkeit halber

if( strlen($timestamp) != strlen("20060815141319") ) // zu faul zum zählen ;)
{
return false;
}

$ret = array(); # <---

ret['Y'] = substr($timestamp, 0 , 4);
ret['m'] = substr($timestamp, 4 , 2);
ret['d'] = substr($timestamp, 6 , 2);
ret['H'] = substr($timestamp, 8 , 2);
ret['i'] = substr($timestamp, 10 , 2);
ret['s'] = substr($timestamp, 12 , 2);

return $ret;

}

MatMel
01.09.2006, 11:28:15
Ne das wars nicht ... war meine Dummheit:

Beim füllen von $ret jedesmal das $ Zeichen vor der Variable vergessen:


<?PHP

function mygettime( $timestamp )
{

settype($timestamp, "string"); // nur der vollständigkeit halber

if( strlen($timestamp) != strlen("20060815141319") ) // zu faul zum zählen ;)
{
return false;
}

$ret = array();

$ret['Y'] = substr($timestamp, 0 , 4);
$ret['m'] = substr($timestamp, 4 , 2);
$ret['d'] = substr($timestamp, 6 , 2);
$ret['H'] = substr($timestamp, 8 , 2);
$ret['i'] = substr($timestamp, 10 , 2);
$ret['s'] = substr($timestamp, 12 , 2);

return $ret;

}



$ret = mygettime("20060815141319");

echo "20060815141319 is: {$ret['d']}.{$ret['m']}.{$ret['Y']} {$ret['H']}.{$ret['i']}:{$ret['s']}";
// Output: 20060815141319 is: 15.08.2006 14.13:19

?>

Schöner, da mehr am Original wäre evtl noch:

<?PHP

function mydate($format, $timestamp )
{

settype($timestamp, "string"); // nur der vollständigkeit halber

if( strlen($timestamp) != strlen("20060815141319") ) // zu faul zum zählen ;)
{
return false;
}

$ret = array();

$ret['Y'] = substr($timestamp, 0 , 4);
$ret['m'] = substr($timestamp, 4 , 2);
$ret['d'] = substr($timestamp, 6 , 2);
$ret['H'] = substr($timestamp, 8 , 2);
$ret['i'] = substr($timestamp, 10 , 2);
$ret['s'] = substr($timestamp, 12 , 2);

$format = str_replace("Y", $ret['Y'] , $format);
$format = str_replace("m", $ret['m'] , $format);
$format = str_replace("d", $ret['d'] , $format);
$format = str_replace("H", $ret['H'] , $format);
$format = str_replace("i", $ret['i'] , $format);
$format = str_replace("s", $ret['s'] , $format);

return $format;

}

$ret = mydate("d:m:Y H.i:s" , "20060815141319");

echo "20060815141319 is: $ret";
// Output: 20060815141319 is: 15.08.2006 14.13:19

?>

last but not least, zu benutzen wie date:

<?PHP

function mydate($format, $timestamp )
{

settype($timestamp, "string"); // nur der vollständigkeit halber

if( strlen($timestamp) != strlen("20060815141319") ) // zu faul zum zählen ;)
{
return false;
}

$ret = array();

$ret['Y'] = substr($timestamp, 0 , 4);
$ret['m'] = substr($timestamp, 4 , 2);
$ret['d'] = substr($timestamp, 6 , 2);
$ret['H'] = substr($timestamp, 8 , 2);
$ret['i'] = substr($timestamp, 10 , 2);
$ret['s'] = substr($timestamp, 12 , 2);

$ret = date($format, mktime($ret['H'],$ret['i'],$ret['s'],$ret['m'],$ret['d'],$ret['Y']));

return $ret;

}

$ret = mydate("D jS of F - h:i a" , "20060815141319");

echo "20060815141319 is: $ret";
// Output: 20060815141319 is: Tue 15th of August - 02:13 pm

?>