problem med visning af timestamp med date
Jeg har lavet en kode der skal fortælle hvor siden det er at brugeren har postet noget.. Det virker egentlig også næsten helt perfekt... bortset fra at når variablen $time_ago runder de 23-24 timer (ikke helt sikkert hvor det er) viser den 0 hours ago istedet for at skifte til "1 day ago"...
den udskriver dog alligevel "1 day ago" når man ændre timestampet yderligere, altså som om det er længere tid siden end et døgn... kan ikke rigtig finde ud af hvorfor den skriver "0 hours ago"..
Her er min kode i hvert fald:
Håber nogen kan svare på mit spørgsmål..
ps. Har ikke brug for noget færdiglavet script.
$timestamp_sql = mysql_query("SELECT timestamp OSV ...");¨
$timestamp = mysql_result($timestamp_sql,0);
$time_ago = time() - $timestamp;
if ($time_ago <= "59")
{ if ($time_ago == "1") { $time_ago = "1 second ago"; } else { $time_ago = date('U \s\e\c\o\n\d\s \a\g\o',$time_ago) ; } }
elseif ($time_ago <= "119")
{ $time_ago = "1 minute ago"; }
elseif ($time_ago <= "179")
{ $time_ago = "2 minutes ago"; }
elseif ($time_ago <= "239")
{ $time_ago = "3 minutes ago"; }
elseif ($time_ago <= "299")
{ $time_ago = "4 minutes ago"; }
elseif ($time_ago <= "359")
{ $time_ago = "5 minutes ago"; }
elseif ($time_ago <= "419")
{ $time_ago = "6 minutes ago"; }
elseif ($time_ago <= "479")
{ $time_ago = "7 minutes ago"; }
elseif ($time_ago <= "539")
{ $time_ago = "8 minutes ago"; }
elseif ($time_ago <= "599")
{ $time_ago = "9 minutes ago"; }
elseif ($time_ago <= "3599")
{ $time_ago = date('i \m\i\n\u\t\e\s \a\g\o',$time_ago) ; }
elseif ($time_ago <= "86399")
{ if ($time_ago < "7199") { $time_ago = "1 hour ago"; } else { $time_ago = date('G \h\o\u\r\s \a\g\o',$time_ago); } }
elseif ($time_ago <= "604799")
{ if ($time_ago < "172800") { $time_ago = "1 day ago"; } else { $time_ago = date('j \d\a\y\s \a\g\o',$time_ago) ; } }
else
{ $time_ago = date('F j\, Y \a\t H:i',$timestamp); }