webForumDet fria alternativet

Problem med datum

2 svar · 229 visningar · startad av jepsO

jepsOMedlem sedan mars 2001484 inlägg
#1

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
#2

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
#3

strtotime()-funktionen fungerade utmärkt. Tack!

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)