webForumDet fria alternativet

Problem med datum/stamp

3 svar · 260 visningar · startad av Pudolf

PudolfMedlem sedan juli 2000221 inlägg
#1

Hejsan,

Jag undrar vad som e fel med där här koden, det är tänkt att om $newtime är större än $userdata['user_lastvisit'] så ska texten bli Orange. Jag e ny på PHP så jag kanske har gjort allt helt fel eller extra krångligt, jag hittade dom här funtionerna i dokumentationen.

$userdata['user_lastvisit'] är redan i Unixstamp, så heter väl den långa? typ 1029532364.

$news[$i]['datetime'] är i formatet H:i j/n. Jag testade att göra om det till Unixstamp med "echo strtotime ("$newtime");". Det blir rätt då. Hur gör jag så att $newtime kan jämföras mot $userdata['user_lastvisit'] som är i unixstamp? Jag letade upp att man med "strtotime" kunde ovandla till stamp. Men hur sparar jag det resultatet i en ny variabel så jag kan jämföra?

Här e koden:

<?php
$newtime = $news[$i]['datetime'];

// kollade så den blev rätt
// echo strtotime ("$newtime");

if ($userdata['user_lastvisit'] < $newtime)
{ 
 echo "<font color=FFCC00>";
 echo $news[$i]['datetime'];
 echo "</font>";
} 
else 
{
 echo $news[$i]['datetime'];
}
?>

Redigering:
Testade med
if ($userdata['user_lastvisit'] < strtotime("$newtime"))
och då blev lite fler datum orangea. Men det verkar inte fungera så bra med j/n (datum/månad t ex 16/8). På dom över 12 iaf blev texten orange, fast alla inte skulle blivit det.
/redigering

Tacksam för hjälp!

MatteMedlem sedan aug. 20002 975 inlägg
#2

Fick du det rätt med echo strtotime ("$newtime"); så kan jag inte se några problem. Detta borde funka:

if ($userdata['user_lastvisit'] < strtotime($newtime))

Vill du kolla av ett timestamp så gör så här:

echo date("Y-m-d H:i:s", $timestamp);
// echo date("Y-m-d H:i:s", strtotime($newtime));
PudolfMedlem sedan juli 2000221 inlägg
#3

Jag testade att kolla av timestampen och dom visade helt fel.. 2003, 2000 osv.. Jag antar att det var datumformatet jag visade $newtime i som gjorde att det blev fel.. jag ändrade så att det blev Y-m-d H:i-format istället för H:i j/n. Kan man göra om

echo $news[$i]['datetime'];

till typ

echo date("H:i j/n", $newtime);

så att Y-m-d H:i-formatet visas i H:i j/n istället när det skrivs ut? Chansade med exemplet ovanför, gick inte x()

MatteMedlem sedan aug. 20002 975 inlägg
#4

Blir inte riktigt klok på vad du har i $news[$i]['datetime'];

I date() stoppar du in ett unix timestamp och sedan formaterar du din utskrift. Ta en titt i manualen: http://www.php.net/manual/en/function.date.php

Vissa "tids-strängar" går att göra om till timestamp med strtotime(): http://www.php.net/manual/en/function.strtotime.php

Jämförelser bör lämpligtvis göras timestamp med timestamp.

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