webForumDet fria alternativet

konvertera datum

PHP

9 svar · 457 visningar · startad av rittfeldt

Medlem sedan jan. 200355 inlägg
Frågan#1

Jag skulle behöva hjälp med att konvertera ett datum som ligger i en variabel. Den är i formatet "0000-00-00 00:00:00".

Hur gör jag för att ta ut bara datumet och ta bort tiden ifrån det ursprungliga värdet?

Ser väl ut nåt sånt här nu (mest lite av en chansning, hade ingen större aning om hur jag skulle gå till väga, och uppenbarligen fungerade det inte heller):

$today = date("d m Y");
$date2 = date("d m Y", $date);
if ($date2 == $today){ echo ("IDAG");}
else{echo ($date);}

$date är alltså datumstämpeln i min databas i enlighet med formatet jag nämnde först

Det jag vill åstakomma är att i min gästbok testa om datumet inlägget skrevs är dagens eller gårdagens datum för att i så fall skriva "i dag" eller "i går" i stället för bara siffror.

Medlem sedan aug. 20002 975 inlägg
#2
$date2 = date("d m Y", strtotime($date));

För att få fram gårdagens datum

$yesterday = date("d m Y", strtotime("-1 day"));
Medlem sedan jan. 200355 inlägg
#3

tackar :)
Har inte prövat än, men fungerar säkert.

//edit:
Har prövat nu.
Den andra funktionen för att ta fram gårdagens datum funkar finfint. Men den första resulterar i att datumet alltid blir: "01 01 1970". Det är ju rätt format, precis så jag vill ha det, men med den lilla detaljen att det inte verkar fungera :OO

Medlem sedan aug. 20002 975 inlägg
#4

Är formatet på invärdet ($date) rätt så ska det fungera.

Se följande exempel:

$date = '2005-04-17 18:05:10';

$date2 = date("d m Y", strtotime($date));

echo $date2;
Medlem sedan jan. 200355 inlägg
#5

Det var knepigt. För det är i det formatet. Har kollat och dubbelkollat.

Här är koden igen (har ändrat namnen på variablerna för enkelhetens skull):

$thedate = date("d m Y", strtotime($date));
$yesterday = date("d m Y", strtotime("-1 day"));
if ($yesterday == $thedate){ echo ("IGÅR");}
else{echo ($date);}
Medlem sedan aug. 20002 975 inlägg
#6

Om du gör ett echo på $date, vad får du då ?

Hur är värdet i $date skapat ?

Medlem sedan jan. 200355 inlägg
#7

echo $date ger ex: 2005-04-08 20:49:17

och inmatningen:

$query = "INSERT INTO guestbook (name, email, message, entry_date) " .
"VALUES ('$name', '$email', '$message', current_timestamp)";

//edit
Nej jag ljög för dig, echo på $date ger 17.04.2005 | 16:32
Gör ju om formatet i query-strängen:

$query = "SELECT id, name, email, message, DATE_FORMAT(entry_date, '%d.%m.%Y | %H:%i') ".

Nu ska vi pröva igen
tack..

Medlem sedan aug. 20002 975 inlägg
#8
$date = '2005-04-08 20:49:17';

echo date("d m Y", strtotime($date));

Fungerar alldeles utmärkt.

Du måste på något sätt få med ett osynligt skräptecken eller något annat i din variabel.

Hur hämtar du den ?

[EDIT]
Såg nu din ändring.
Se till att inte formattera värdet när du hämtar.

Medlem sedan jan. 200355 inlägg
#9

Tusen tack för hjälpen, ska ut med bågen en svänga nu. Ska titta över problemet senare i kväll igen.

Men nu tror jag att jag kan lösa det när jag vet hur det ska se ut iaf.

Medlem sedan jan. 200355 inlägg
#10

Tack Matte. NU funkar det.

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
115 ms — ändringar (db)