Zeitformatierung
Andü
- php
Ich hab einige Datumsangabe in dem bei uns typischen Format (z.B.: 25.05.2005) und möchte diese sortieren lassen. Dummerweise nimmt PHP dieses Datum als eine Zahl an und sortiert diese sozusagen nach dem Tag.
Ich möchte das aber gern chronologisch haben. Wie kann ich die Zeiten "umformen" lassen, ohne meine Datensätze zu ändern?
Hi,
Ich möchte das aber gern chronologisch haben. Wie kann ich die Zeiten "umformen" lassen, ohne meine Datensätze zu ändern?
tja dann must du das ausi umgehn. mit den 2 folgenden funktionen
um aus 12.12.2005 => 2005-12-12 zu machen
function datum_deutsch2mysql($datum)
{
$string = $datum;
$token = strtok($string, ".");
$tag_ok = false;
$monat_ok = false;
$jahr_ok = false;
while ($token !== false)
{
$feld[] = $token;
$token = strtok(".");
}
if(is_numeric($feld[0]) == true)
{
$tag = $feld[0];
$tag_ok = true;
}
if(is_numeric($feld[1]) == true)
{
$monat = $feld[1];
$monat_ok = true;
}
if(is_numeric($feld[2]) == true)
{
$jahr = $feld[2];
$jahr_ok = true;
}
if(($tag_ok == true) AND ($monat_ok == true) AND ($jahr_ok == true))
{
$erg = checkdate($monat, $tag, $jahr);
}
else
{
$erg = false;
}
if($erg == false)
{
return false;
}
else
{
$datum_mysql = sprintf("%s-%s-%s",$jahr, $monat, $tag);
return $datum_mysql;
}
} //function datum_deutsch2mysql($datum)
dann sortieren und dann wieder zurück wandeln mit
function datum_deutsch($datum)
{
$num_wt = strftime("%w",strtotime($datum));
return $datum_dt = strftime("%d.%m.%Y",strtotime($datum));
}
MfG
Ganz schön umständlich? Geht das net einfacher/schneller?
Huhu Andü
Wie kann ich die Zeiten "umformen" lassen, ohne meine Datensätze zu ändern?
Was spricht denn dagegen die Datensätze/ den Spaltentyp zu ändern?
Viele Grüße
lulu
Hello,
Ich hab einige Datumsangabe in dem bei uns typischen Format (z.B.: 25.05.2005) und möchte diese sortieren lassen. Dummerweise nimmt PHP dieses Datum als eine Zahl an und sortiert diese sozusagen nach dem Tag.
Ich möchte das aber gern chronologisch haben. Wie kann ich die Zeiten "umformen" lassen, ohne meine Datensätze zu ändern?
Da Du nichts von einer Datenbank schreibst, solltest Du das Format der Datenhaltung angeben.
Stehen die Daten in einer Textdatei, oder stehen sie in einem Array?
Ggf. solltest Du die Datenhaltung auf sortierfähiges Format umstellen und dann per Anzeigefunktion die Umformatierung durchführen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Die Daten stehen in einem Array.
Ggf. solltest Du die Datenhaltung auf sortierfähiges Format umstellen und dann per Anzeigefunktion die Umformatierung durchführen.
Anzeigefunktion?
Hello,
Die Daten stehen in einem Array.
Ggf. solltest Du die Datenhaltung auf sortierfähiges Format umstellen und dann per Anzeigefunktion die Umformatierung durchführen.
Anzeigefunktion?
function make_german_date($ansidate)
{
$date = substr(6,2,$ansidate).'.'.substr(4,2,$ansidate).'.'.substr(0,4,$ansidate);
return $date;
}
echo macke_german_date($_daten[n]);
Und vorher im Array die daten auf Ansi umstellen:
function convert2ansi($german_date_string)
{
$_date = explode('.',$german_date_string);
$ansi = $_date[2].$_date[1].$_date[0];
return $ansi;
}
für das ganze Array $_daten, dass erstmal in German-Date-Format vorliegt:
$_ansidate = arraymap('convert2ansi',$_daten);
Dieses Array kannst Du nun sortieren, da es numerische Strings enthält.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom