jepsOMedlem sedan mars 2001484 inlägg Jag har en mySQL-tabell som innehåller ett datumfält med namnet s_dat och typen DATE. Detta hämtas sedan på följande sätt:
$dat = strftime("%e %B",$s_dat);
Orsaken till att jag definierar en ny variabel är att den är del av en if-sats.
Kör man sedan echo på $s_dat och $dat blir det dock fel. $s_dat returnerar, mycket riktigt, "2002-12-08", men $dat returnerar "1 januari" och året "1970", alltså startdatumet för strftime()-funktionen.
Vad kan vara fel?
dectgapMedlem sedan sep. 20021 655 inlägg Testa att hämta s_dat med UNIX_TIMESTAMP() i SQL-satsen först.
Ett exempel:
$result = mysql_query("SELECT UNIX_TIMESTAMP(s_dat) AS tid FROM tabellen";
while ($row = mysql_fetch_array($result)){
echo strftime("%e %B",$row["tid"]);
}
Lite onödigt av mig att ändra allting..
Saken är den att du måste ha tiden du anger i strfrtime() i Unix-format (=antalet sekunder sedan 1 januari 1970). Datumet du har i databasen måste alltså göras om till ett antal sekunder, och det kan du göra med mysql-funktionen UNIX_TIMESTAMP(). Ett alternativ är:
$s_dat = strtotime($s_dat);
$dat = strftime("%e %B",$s_dat);
jepsOMedlem sedan mars 2001484 inlägg strtotime()-funktionen fungerade utmärkt. Tack!