hi all,
in meiner db (mySql) habe ich folgende zeile:
Feld Typ Null Standard
datum date Nein 0000-00-00
jetzt will ich aber auf der website nicht nur das datum im format 2001-10-10, sondern auch den dazugehörigen Wochentag mit ausgeben, ohne das ich ein neues Feld (welches auch durch den Redakteur gepflegt werden müsste) anlegen muss! Wie könnte ich das denn anstellen, freue mich über jede Hilfe.
cu
meth
ich wuerde nen unix-timestamp als datumsfeld nehmen … mit date() kannste den je nach belieben einfacher formatieren als den mysql-timestamp. du kannst dir auch einfach do den wochentag ausgeben lassen …
und wie definier ich den in phpMyAdmin oder efinach per sql query einfügen…haste da ein schnippsel da?
)
und wie definier ich den in phpMyAdmin oder efinach per sql
query einfügen…haste da ein schnippsel da?
)
oki, also z.b. so:
$time = time(); // aktuelle zeit -> unixtimestamp
insert into blah (id,datum) values (’’,’$time’);
und in deiner db siehts z.b. so aus:
tabelle blah:
id : irgendwas, egal 
datum : varchar(12) // reicht noch fuer ca. 1000 jahre oder so 
aber eigentlich wollet ich ja nix inserten sonder „nur“ das format 2000-10-10 welches schon in der mySql db drinnen ist konvertieren, bzw. z. b. hatte ich folgende idee. ich splitte bereits das datumsformat so und gebe es leserlicher so aus:
$lo_tmparr = explode("-",$row[„datum“]);
echo „".$lo_tmparr[2].".".$lo_tmparr[1].".".$lo_tmparr[0]."“;
echo date(l,$lo_tmparr[1]);
jetzt dachte ich mir ich benutzt einfach die php-funktion date(), und gebe ihm als syntax $lo_tmparr[2], mit auf den weg…das funzt aber net,
date(l,$lo_tmparr[2]);
so dachte ich mir das, das dkleine l, gibt lt. php-handbuch ein wochentag vom format 00 als Sonntag aus, usw…das müsste doch ein ansatz sein oder??? aber er kann mit dem hzweiten string nix anfangen, so stehts im handbuch:
string date (string format [, int timestamp])
ich checks nicht…
date nimmt auch nur einen timestamp (unix-timestamp) als parameter … dein dingen ist natuerlich kein timestamp…
timestamp = zeit in sekunden seid 01.01.1970.
wenn du dein datumsfeld in der db behalten willst musst du dir schon selber ne funktion schreiben welche das datum formatiert und ggf. den wochentag berechnet.
das alles entfaellt mit dem unix-timestamp

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
ich checks nicht…
Es ist ganz einfach. Wie immer, wenn mans erstmal weiss 
Also: Du braucht unbedingt den Timestamp. Also musst Du dein Datumsformat dahin umwandeln.
Und das geht so:
$lo_tmparr = explode("-",$row[„datum“]); # gute Idee
$day = $lo_tmparr[2]
$month = $lo_tmparr[1]
$year = $lo_tmparr[0]
Umwandeln mit mktime
mktime (int hour, int minute, int second \
int month, int day, int year [, int is_dst])
$timestamp = mktime(0,0,0,$month,$day,$year);
OK, kommt eine komische Zahl raus, etwa
wie 1000537123, die stopfen wir jetzt
in die strftime()-Funktion. Die ist besser
als date(), weil wir damit auch deutsche
Bezeichnungen fuer die Tage bekommen.
Ersma locale fuers Laendle setzen.
setlocale(„LC_ALL“, „de_DE“);
$tach = sstrftime ("%A", $timestamp);
echo $tach;
Fäddisch.
Ich habs nicht ausprobiert, aber das sollte eigentlich funktionieren. Ansonsten nochmal php.net nach den Funktionen mktime, setlocale und strftime durchforsten.
Viel Spaß,
Stefan
vesteh versteh, ich versuche grad sowas:
$timestamp = strtotime ($row[„datum“]);
$array = getdate ($timestamp);
if ($array[„weekday“]== „Friday“) $wochentag = Freitag;
if ($array[„weekday“]== „Monday“) $wochentag = Montag;
echo $wochentag;
echo $timestamp;
bekomm es aber nicht ganz gebacken…auch aufm puretec unix nicht…
danke an alle!
wollt mich mal offiziel bedanken
auf jeden fall, jetzt funktioniert es endlich, so:
#wochentag berrechnen
$lo_tmparr2 = explode("-",$row[„datum“]); # gute Idee
$day = $lo_tmparr2[2];
$month = $lo_tmparr2[1];
$year = $lo_tmparr2[0];
$timestamp = mktime(0,0,0,$month,$day,$year);
setlocale(„LC_ALL“, „de_DE“);
$tach = strftime ("%A", $timestamp);
echo „_“.$tach."_�";