Datumsumwandlung
dave
- php
Hallo,
Hab folgendes Problem, Hab in ner Datenbank Datumsangaben in folgendem Format gespeichert DDMMYYYY ohne Zeichen dazwischen. wie kann ich des in das Format DD.MM.YYYY bringen????
Danke im Voraus
Gruß
DDMMYYYY ohne Zeichen dazwischen.
ist es immer 20.05.1999 oder auch 20.5.1998?
mfg Till
DDMMYYYY ohne Zeichen dazwischen.
ist es immer 20.05.1999 oder auch 20.5.1998?
mfg Till
enweder 3.12.2002 oder 12.05.2002 Das kann man aber mit ner Abfrage der Stelleanzahl regeln. Ich weiß nur nicht genau wie ich die Punkte dazwischenkrieg.
gruß
dann benutz eine dieser funktionen :D
http://www.php.net/manual/de/function.wordwrap.php
http://www.php.net/manual/de/function.substr.php
substr ist empfehlenswerter...
ne andere möglichkeit fällt mir nicht ein...
mfg Till
Huhu
enweder 3.12.2002 oder 12.05.2002 Das kann man aber mit ner Abfrage der Stelleanzahl regeln. Ich weiß nur nicht genau wie ich die Punkte dazwischenkrieg.
Aha, und was ist dann z.B. 2112002 ?
Viele Grüße
lulu
Huhu
enweder 3.12.2002 oder 12.05.2002 Das kann man aber mit ner Abfrage der Stelleanzahl regeln. Ich weiß nur nicht genau wie ich die Punkte dazwischenkrieg.
Aha, und was ist dann z.B. 2112002 ?
Viele Grüße
lulu
In der DAtenbank sind nur die führenden Nullen gestrichen. In der mmitte liegende Nullen sind vorhanden...also bei deinem Beispiel kann des nur der 2.11.2002 sein.
LOL Gruß
Huhu dave
In der DAtenbank sind nur die führenden Nullen gestrichen. In der mmitte liegende Nullen sind vorhanden...also bei deinem Beispiel kann des nur der 2.11.2002 sein.
Na, dann ist es ja doch eindeutig.
Wenn Du aber eh schon dabei bist das Feld umzuformatieren, würde ich Dir dringend empfehlen z.B. YYYY-MM-DD als Format zu nehmen.
Damit steht Dir auch die Welt der SQL-Datumsfunktionen offen und Du hast keine Probleme mit Sortierungen nach Datum.
Bei der Ausgabe lässt sich das dann sehr einfach in andere Formate wandeln.
http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#DATETIME
(ich glaube Du hattest MySQL nicht explizit erwähnt, aber ich nehme das einfach mal an)
Viele Grüße
lulu
Hallo beisammen,
in jedem Fall möchte ich empfehlen,
die Unixzeit zu verwenden (Sekunden seit 1.1.1970),
und die in ner Datenbank als Integer (int) zu speichern.
Das hat erhebliche Vorteile im Handling, bei Berechnungen
und auch bei Datenbankkonvertierungen.
Mit
time() erhälst Du die aktuelle Unixzeit vom Server
mktime() läßt sich aus nem Datum und/oder Uhrzeit die Unixzeit
ermitteln.
Und zurück gehts mit
date() oder
strftime()
Auf php.net findet man zu jeder dieser Funktionen
auch die passenden Beispiele ..
Gruesse Dacor
Huhu Dacor
in jedem Fall möchte ich empfehlen,
die Unixzeit zu verwenden (Sekunden seit 1.1.1970),
da würde ich nach dem "in" ein "fast" einfügen.
Da es ja durchaus Fälle gibt in denen Daten _vor_ 1970 eine Rolle spielen.
Viele Grüße
lulu
Mit php4 und mysl 3.23.x
kann die Unixzeit durchaus negativ sein...
Gruesse Dacor
Hallo du da draußen,
Als Parameter übergibst du einfach deine Zahl (2122002 oder 29031989) und du kriegst als return-Wert 2.12.2002 oder 29.03.1989. Als zweiten Parameter kannst du optionalöauch einen Trenner angeben. Gibst du hier z. B. "-" an, kommt 29-03-1989 heraus. Wenn du den Parameter weglässt, wird der Punkt benutzt.
function datumumwandeln($datum, $trenner=".")
{
if(strlen($datum) == 8)
{
$return = substr($datum, 0, 2);
$return .= $trenner;
$return .= substr($datum, 2, 2);
$return .= $trenner;
$return .= substr($datum, 4, 4);
}
elseif(strlen($datum) == 7)
{
$return = substr($datum, 0, 1);
$return .= $trenner;
$return .= substr($datum, 1, 2);
$return .= $trenner;
$return .= substr($datum, 3, 4);
}
else
$return = false;
return $return;
}
Nehmen wir an, du hast die Zahl in einer Variable
$mysql_datum = 29031989;
gespeichert und du willst das Datum aus der Variable auf den Bildschirm schreiben:
echo datumumwandeln($mysql_datum);
Aber das weißt du ja hoffentlich!
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de),
Dogfish
@dogfish
Danke Tipp war heiss und es hat geklappt
Gruß an dich da drinnen...LOL