Avatar billede Hans1 Praktikant
27. august 2011 - 11:29 Der er 3 kommentarer og
1 løsning

Vise resultatet af en funktion

Hej

Hvordan får jeg vist resultatet af denne funktion ? Og hvilket format skal den udskrives med [timestamp] eller i år-måned-dag format?


<?php
public static function distanceOfTimeInWords($fromTime, $toTime = 0, $showLessThanAMinute = false) {
    $distanceInSeconds = round(abs($toTime - $fromTime));
    $distanceInMinutes = round($distanceInSeconds / 60);
       
        if ( $distanceInMinutes <= 1 ) {
            if ( !$showLessThanAMinute ) {
                return ($distanceInMinutes == 0) ? 'less than a minute' : '1 minute';
            } else {
                if ( $distanceInSeconds < 5 ) {
                    return 'less than 5 seconds';
                }
                if ( $distanceInSeconds < 10 ) {
                    return 'less than 10 seconds';
                }
                if ( $distanceInSeconds < 20 ) {
                    return 'less than 20 seconds';
                }
                if ( $distanceInSeconds < 40 ) {
                    return 'about half a minute';
                }
                if ( $distanceInSeconds < 60 ) {
                    return 'less than a minute';
                }
               
                return '1 minute';
            }
        }
        if ( $distanceInMinutes < 45 ) {
            return $distanceInMinutes . ' minutes';
        }
        if ( $distanceInMinutes < 90 ) {
            return 'about 1 hour';
        }
        if ( $distanceInMinutes < 1440 ) {
            return 'about ' . round(floatval($distanceInMinutes) / 60.0) . ' hours';
        }
        if ( $distanceInMinutes < 2880 ) {
            return '1 day';
        }
        if ( $distanceInMinutes < 43200 ) {
            return 'about ' . round(floatval($distanceInMinutes) / 1440) . ' days';
        }
        if ( $distanceInMinutes < 86400 ) {
            return 'about 1 month';
        }
        if ( $distanceInMinutes < 525600 ) {
            return round(floatval($distanceInMinutes) / 43200) . ' months';
        }
        if ( $distanceInMinutes < 1051199 ) {
            return 'about 1 year';
        }
       
        return 'over ' . round(floatval($distanceInMinutes) / 525600) . ' years';
}
?>
Avatar billede heinzdmx Nybegynder
27. august 2011 - 14:54 #1
Eftersom du har sat den til at være static burde den så ikke ligge i et objekt?

Hvis den ikke gør vil jeg anbefale dig at fjerne static og så kan du bare lave:

<?php echo  distanceOfTimeInWords($fromTime, $toTime, $showLessThanAMinute); ?>
Avatar billede Hans1 Praktikant
27. august 2011 - 15:32 #2
Okay... Men hvilket format skal variablen $fromtime være i?

echo distanceOfTimeInWords('2009-03-04 17:45'); = 33 minutes (forkert)
echo distanceOfTimeInWords('1314451545'); = over 42 years
Avatar billede heinzdmx Nybegynder
27. august 2011 - 15:58 #3
Det skal vist være et date objekt:

strtotime('2009-03-04 17:45')
Avatar billede Hans1 Praktikant
28. august 2011 - 10:58 #4
Hmm tror bare jeg lukker. Finder en anden kode.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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