CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |

07.07.2004, 15:24:59
|
Anfänger
|
|
Registriert seit: Mar 2003
Beiträge: 81
|
|
php und MySQL Timestamp
Ich lasse mir bei jedem Datensatzeintrag in die MySQL Tabelle automatisch einen Timestamp von MySQL generieren (MySQL Type: timestamp(14)).
In der Datenbank sieht der Eintrag des Timestamp z.B. so aus:
20040707135123
Lese ich diesen Wert mit PHP aus, und will ihn formatiert anzeigen, klappt das nicht.
Das Ergebnis von:
date("l dS of F Y h:i:s A", $row['mytime']);
ist:
Tuesday 19th of January 2038 04:14:07 AM
Was auf einen falschen Timestamp hindeutet. Den Timestamp ha ich -wie schon gesagt- automatisch von MySQL generieren lassen.
Unterstützen die PHP funktionen nur Unix Timestamps?
Über die MySQL Funktion Date() kann ich das Datum schon bei der SQL Abfrage formatieren lassen. Das ist aber nicht ganz das was ich möchte. Kann man mit PHP Mitteln keinen MySQL Timestamp formatieren?
|

07.07.2004, 15:29:57
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 58
Beiträge: 1.236
|
|
Hi crowl,
eine Möglichkeit...
PHP-Code:
function mysql_timestamp2german($t) {
return sprintf("%02d.%02d.%04d %02d:%02d:%02d",
substr($t, 6, 2),
substr($t, 4, 2),
substr($t, 0, 4),
substr($t, 8, 2),
substr($t, 10, 2),
substr($t, 12, 2));
}
echo mysql_timestamp2german('20040707135123');
Gruss
|

07.07.2004, 15:30:34
|
 |
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
date() kannst du nur auf Unix-Timestamps anwenden.
Trotzdem kannst du den Timestamp, den MySQL generiert, mit php verarbeiten. substr hilft dir weiter ($zeit ist der Timestamp aus der Datenbank):
PHP-Code:
$jahr=substr($zeit, 0, 4);
$monat=substr($zeit, 4, 2);
$tag=substr($zeit, 6, 2);
$stunde=substr($zeit, 8, 2);
$minute=substr($zeit, 10, 2);
$sekunde=substr($zeit, 12, 2);
Edit: Da war Chris17 wohl schneller.
Noch ein Nachtrag: Du kannst auch folgende Funktion verwenden:
PHP-Code:
<?php
function dateMysql($format, $zeit){
$jahr=substr($zeit, 0, 4);
$monat=substr($zeit, 4, 2);
$tag=substr($zeit, 6, 2);
$stunde=substr($zeit, 8, 2);
$minute=substr($zeit, 10, 2);
$sekunde=substr($zeit, 12, 2);
$zeit=mktime($stunde, $minute, $sekunde, $monat, $tag, $jahr);
return date($format, $zeit);
}
?>
echo dateMysql('d.m.Y', '20040707135123');
Ausgegeben werden solllte dann "07.07.2004".
Geändert von xabbuh (07.07.2004 um 22:46:14 Uhr)
|

08.07.2004, 01:33:33
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 194
|
|
Wenn Du die Daten nicht noch für weitere Berechnungen brauchst, kannst Du sowas auch direkt bei der Abfrage erledigen, z. B.:
Code:
SELECT DATE_FORMAT(`mysql_timestamp`, "%W %M %d, %Y %r") ...
Unix-Timestamp zum Weiterverwenden geht so:
Code:
SELECT select UNIX_TIMESTAMP(`mysql_timestamp`) ...
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:01:55 Uhr.
|