Avatar billede eikhorsholm Nybegynder
31. oktober 2008 - 16:36 Der er 3 kommentarer og
1 løsning

Pæn dato.

Jeg prøver at lave en funktion som viser en dato pænt med hhv.:
sekunder siden,
minutter siden,
timer siden,
dage siden,
uger siden og ellers
datoen.

Men den driller lidt med endelserne så det er grammatisk korrekt:

<?php
function get_relative_time($datetime) {
    $diff = time() - strtotime($datetime);
    if ($diff < 60)
        return $diff . " sekund" . ($diff != 1) "er" . " siden";
    $diff = round($diff / 60);
    if ($diff < 60)
        return $diff . " minut" . ($diff != 1) "ter" . " siden";
    $diff = round($diff / 60);
    if ($diff < 24)
        return $diff . " time" . ($diff != 1) "r" . " siden";
    $diff = round($diff / 24);
    if ($diff < 7)
        return $diff . " dag" . ($diff != 1) "e" . " siden";
    $diff = round($diff / 7);
    if ($diff < 4)
        return $diff . " uge" . ($diff != 1) "r" . " siden";
    return date("j/n-y", strtotime($datetime));
}
?>
Avatar billede eikhorsholm Nybegynder
31. oktober 2008 - 16:37 #1
Er det derudover muligt at skrive med danske ugedage og måneder f.eks.:
fredag den 13. august 2008
Avatar billede simotho Nybegynder
31. oktober 2008 - 17:05 #2
<?php
echo date( "d/m/Y H:i");
?>

Eksempel: 31/10/2008 17:03

SKal der mere på?
Avatar billede eikhorsholm Nybegynder
31. oktober 2008 - 18:15 #3
Ja, altså som du kan se i den funktion jeg er i gang med, så prøver jeg at skrive forskellige former for datoen ud afh. af hvornår datoen er. Så hvis den er relativ ny, så vises sekunder siden dags dato, ellers minutter, timer, dage og uger. Hvis det er længere tid siden vises datoen blot.

Mit problem er noget med endelserne som ikke fungerer.

Og derudover ville jeg gerne kunne udskrive danske ugedage og måneder, som f.eks.:
fredag den 13. august 2008
men det er ikke så vigtig da det må være noget med et array som indeholder disse og derefter kalde det på dagens nummer i ugen o. lign.
Avatar billede eikhorsholm Nybegynder
31. oktober 2008 - 18:33 #4
<?php
function get_relative_time($datetime) {
    $diff = time() - strtotime($datetime);
    if ($diff < 60)
        return $diff . " sekund" . (($diff != 1) ? "er" : "") . " siden";
    $diff = round($diff / 60);
    if ($diff < 60)
        return $diff . " minut" . (($diff != 1) ? "ter" : "") . " siden";
    $diff = round($diff / 60);
    if ($diff < 24)
        return $diff . " time" . (($diff != 1) ? "r" : "") . " siden";
    $diff = round($diff / 24);
    if ($diff < 7)
        return $diff . " dag" . (($diff != 1) ? "e" : "") . " siden";
    $diff = round($diff / 7);
    if ($diff < 4)
        return $diff . " uge" . (($diff != 1) ? "r" : "") . " siden";
    return date("j/n-y", strtotime($datetime));
}
?>

Det virker :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester