yubb.de-Logo
Tutorials
yubb@yubb
yubbService
Inside yubb

MySQL Timestamps umwandeln

Der MySQL-Timestamp hat ein anderes Format als der PHP-Timestamp. Wie man trotzdem verwertbare Daten aus dem MySQL-Timestamp ziehen kann, kann man hier nachlesen.

In der Regel sind die MySQL Timestamps nur für Vergleiche der Aktualität gut, aber wenn man ausschließlich mit PHPmyAdmin arbeitet (z.B. bei einem Newssystem) kann man ja schlecht einen UNIX Timestamp einfügen. Deshalb hier die Lösung:
PHP-Datei:
1
2
3
4
5
6
7
8
<?
  $monat 
substr($date, -102); 
  
$datum substr($date, -82); 
  
$jahr substr($date, -144); 
  
$stunden substr($date, -62); 
  
$minuten substr($date, -42); 
  
$sekunden substr($date, -2);
?>


Die Variable $date ist ganz einfach der MySQL-Timestamp, sprich ein String, der aufgeteilt werden soll, aber was bedeuten die Zahlen? Auch nicht sehr schwer: der String ist ja 14 Zeichen lang. Wenn wir jetzt z.B. das Jahr haben wollen (also die ersten 4 Zeichen unseres Strings), dann müssen wir 14 Zeichen zurück (-14) und dann die 4 Zeichen lesen (dafür steht die 4). Und so funktioniert das bei dem Rest auch. wenn ihr euch jetzt noch fragt, warum bei Sekunden nur -2 steht, dann muss ich euch sagen, dass das daran liegt, dass die letzten 2 Zahlen für die Sekunden sind (oben auch schonmal erwähnt) und da gehen wir 2 Zeichen zurück (logisch!) und mehr als dasteht, kann ja wohl auch nicht ausgegeben werden.

Zum Schluss noch ein Anwendungsbeispiel von mir (bei einem Newsscript):

PHP-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<? $query2 mysql_query("Select * from news order by ID desc LIMIT $start,$limit"); 
    while (
$row mysql_fetch_array($query2MYSQL_ASSOC)) { 
        
$titel $row['titel']; 
        
$news $row['news']; 
        
$name $row['name']; 
        
$date $row['datum']; 
        
$typ $row['thema']; 
        
$monat substr($date, -102); 
        
$datum substr($date, -82); 
        
$jahr substr($date, -144); 
        
$stunden substr($date, -62); 
        
$minuten substr($date, -42); 
        
$sekunden substr($date, -2); 
        eval(
"echo \"".gettemp("news")."\";"); 
        echo(
"<table><tr><td> </td></tr></table>");     
    } 
?>


Ich hoffe, dass das dem einen oder andern von euch weiter geholfen hat.

Geschrieben von michi am 18.06.2004 (11041x gelesen)
weiterempfehlen weiterempfehlen   Druckversion Druckversion   kommentieren kommentieren

es geht noch einfacher:
einfach direkt das datum mit SQL formatieren:
$sql="select .... date_format(datum, '%d.%m.%Y %H:%i:%s') as datum....
Geschrieben von ich
Hallo,

genau diese Variante habe ich gesucht.

Vielen Dank :-)
Geschrieben von ash0815