02. december 2003 - 14:53Der er
5 kommentarer og 1 løsning
funktion der udskriver tid til eller tid fra
Jeg har længe siddet og drømt lidt om en funktion der får et timestamp og derfra udregner tiden til (fx. Der er 1 måned, 10 dage, 10 timer og 2 minutter til) eller hvis det er sket (fx. Det er 1 måned, 4 dage og 10 timer og 5 minutter siden).
Undskyld mit sene svar men har haft lidt travlt på det sidste med skole osv. Men ja, den skal vise perioder over et år.
Synes godt om
Slettet bruger
15. december 2003 - 23:14#5
Her er noget, der skulle kunne bruges. Hvis du ikke skal bruge det på dansk, kan du bare fjerne setlocale-linien.
tidsafstand_tekst-funktionen lavede jeg sådan set bare som dokumentation for brugen af tidsafstand-funktionen, men jeg mente, at den var egentlig ganske anvendelig i sig selv.
function tidsafstand_tekst($tid){ $afstand=tidsafstand($tid);
$tekst=''; if ($afstand['year']!=0){ $tekst.="{$afstand['year']} år, "; } if ($afstand['mon']!=0){ $tekst.="{$afstand['mon']} måneder, "; } if ($afstand['mday']!=0){ $tekst.="{$afstand['mday']} dage, "; } if ($afstand['hours']!=0){ $tekst.="{$afstand['hours']} timer, "; } if ($afstand['minutes']!=0){ $tekst.="{$afstand['minutes']} minutter, "; } if ($afstand['seconds']!=0){ $tekst.="{$afstand['seconds']} sekunder, "; }
$tekst=preg_replace('/(.*),\s(.*?),\s$/', '\\1 og \\2', $tekst);
if ($afstand['fremtid']) { $tekst="Der er " . $tekst . " til " . strftime('%c',$tid); } else { $tekst=strftime('%c',$tid) . " var for " . $tekst . " siden."; }
return $tekst;
}
function tidsafstand($tid){ if ($tid<time()){ $sidst=getdate(); $foerst=getdate($tid); $svar['fremtid']=FALSE; } else { $sidst=getdate($tid); $foerst=getdate(); $svar['fremtid']=TRUE; } $svar['seconds']=$sidst['seconds']-$foerst['seconds']; if ($svar['seconds']<0){$svar['seconds']+=60;$sidst['minutes']-=1;} $svar['minutes']=$sidst['minutes']-$foerst['minutes']; if ($svar['minutes']<0){$svar['minutes']+=60;$sidst['hours']-=1;} $svar['hours']=$sidst['hours']-$foerst['hours']; if ($svar['hours']<0){$svar['hours']+=24;$sidst['mday']-=1;} $svar['mday']=$sidst['mday']-$foerst['mday']; if ($svar['mday']<0) { if ($svar['fremtid']){ $temp=date('t',mktime(0,0,0,$sidst['mon']-1,1,$sidst['year'])); } else { $temp=date('t',mktime(0,0,0,$foerst['mon'],1,$foerst['year'])); } $svar['mday']+=$temp; $sidst['mon']-=1; } $svar['mon']=$sidst['mon']-$foerst['mon']; if ($svar['mon']<0){$svar['mon']+=12;$sidst['year']-=1;} $svar['year']=$sidst['year']-$foerst['year'];
return $svar; }
?>
Synes godt om
Slettet bruger
22. december 2003 - 06:03#6
Hallo?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.