• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datum deutsch und älter als 1970

Status
Für weitere Antworten geschlossen.

joba

Neues Mitglied
Hallo allen Forumlern,

ich habe folgendes Problem:
In einer datenbank sind 11 Spalten (0-10) und die daten möchte ich in einer
tabelle anzeigen. dazu läuft eine schleife durch alle spalten. soweit funktioniert das ganze. nur werden in spalte 4 und 6 die datumswerte im
englischen format (Y.m.d) angezeigt. mit timestemp würde das zu machen sein, nur die datumsanzeigen liegen vor dem jahr 1970. was bzw. wie kann ich
erreichen, dass dies daten im deutschen format angezeigt werden?

danke schon mal und gruß
joba
 
Du kannst jeweils die Werte aus der Datenbank über MySQL so drehen, dass diese im deutschen Format angezeigt werden.

MySQL AB :: MySQL 5.0 Reference Manual :: 12.6 Date and Time Functions
Code:
SELECT CONCAT(CONCAT(EXTRACT(DAY FROM datum), EXTRACT(MONTH FROM datum)), EXTRACT(YEAR FROM datum) AS deutschesdatum FROM tabelle
Hallo da_loki,

danke für diesen Tipp. Nur mein Problem ist, ich weiß nicht wo diese Zeile im Text eingefügt werden muss. Bin nämlich Laie und versuche mein Glück. Manches ist über eine Dokumentation zu lernen. Anderes ist schwieriger.
Und so sieht mein Versuch aus die Datumsfelder (
PHP:
$row[4+6]:

if ($selectort=="alle"){$result = mysql_query("SELECT * FROM `grab` ORDER BY `$sortieren`  ASC ");}
else {$result = mysql_query("SELECT * FROM `grab` WHERE `standort` like '$selectort' ORDER BY `$sortieren`  ASC ");}
mysql_data_seek($result, 0);
while(($row = mysql_fetch_row($result)))
{

$row[0] = "<a href='/grabsteine/".$row[0].".jpg' target='bild'>".$row[0]."</a>" ;
if ($row[2]) {
    $row[2] = "geb.".$row[2];
}

?>

<tr>
<?
for ($i = 0;$i < 11; $i++)
 
Zuletzt bearbeitet von einem Moderator:
Sorry, habe vergessen dir das zu sagen :)
Das was ich da geschrieben habe, ist ein SQL-Query.
Wird also von deinem Datenbankserver interpretiert und ausgeführt.
Du findest in dem Array, welches du ja mit PHP ausliest (while-schleife), dann ein Feld "deutschesdatum" worin das Datum gespeichert ist.
Dieses existiert, auch wenn es in deiner SQL-Datenbank nicht da ist ! ;)
 
warum das datum in datenbank nicht so lassen, auslesen und dann mit php splitten und so ausgeben wie man es braucht?!
 
du kannst ein normales datum älter als 1970 mit mktime erzeugen... dürfte c.a. bis 1925 gut gehen tiefer solltest du nicht gehen.

sonst könnteste plötzlich wieder bei 2000 oder so sein *gg* darum ältere daten lieber selber ausrechnen, oder schon formatiert speichern.
 
warum das datum in datenbank nicht so lassen, auslesen und dann mit php splitten und so ausgeben wie man es braucht?!

Weil SQL extra Funktionen für so etwas mitliefert.
Auch wenn es so wie es jetzt ist, nicht die schönste Variante ist, aber so ist der Wert direkt in einem Feld drin.
Gedacht ist die SQL-Funktion, um nur den Wert "Jahr" "Tag" "Monat" zu erhalten, und das jedesmal als eigenes Feld. Dies entspricht auch den Normalisierungen, welche auf Datenbankstrukturen angewandt werden sollten.

Desweiteren sind Operationen in der Datenbank zum Teil schneller als die gleiche Operation mit PHP. Dies hat sich besonders bei komplexeren Themengebieten herausgestellt.
 
Ja, aber

Danke für Eure Beiträge. Es geht in der Datenbank um das Thema Ahnenforschung und ist das Bestreben darauf ausgerichtet möglichst weit zurück zu kommen. Teilweise bis 1550 o.ä.
Nun meine Frage (entschuldigt bitte meine Unkenntnis):
Was genau muss ich eingeben um "deutschesdatum" anzusprechen bzw. auszugeben?
Gibt es nicht etwas einfaches, in der Art wie:
$row[4] = datumformat(d.m.y)

gruß
joba
 
Du liest die Daten ja über
Code:
while(($row = mysql_fetch_[b]assoc[/b]($result)))
aus der Datenbank aus.

Hier kannst du jetzt einfach mit
Code:
echo $row['deutschesdatum'];

Ich empfehle zur Programmierung immer mysql_fetch_assoc zu nutzen, da du so die Spaltennamen nutzen kannst, und nicht über den Spaltenindex gehst, welcher sich ändern kann!
 
Danke!

Allen Helfern, besonders da_loki,

vielen Dank das ist mir eine große Hilfe. Nun kann ich weiter!:D

Gruß
joba
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben