Avatar billede hp-power Nybegynder
01. juli 2008 - 21:43 Der er 11 kommentarer og
1 løsning

Tid Omringning til tal

jeg har gemt nogle date i tabel hvornår folk har loget ind. og tiden ser fx sådan ud 21:10:55

kan man lave det om til en tal kode (kunne man i visual basic igamle dage)
så man kan trække to tider fra hinanden og hvordan  konverter man den tilbage igen.
Avatar billede arne_v Ekspert
01. juli 2008 - 21:44 #1
hh*60*60+mm*60+ss
Avatar billede hp-power Nybegynder
01. juli 2008 - 21:50 #2
jeg er ikke helt med.
Avatar billede arne_v Ekspert
01. juli 2008 - 22:05 #3
du har hh:mm:ss og saa omregner du den til en enkelt vaerdi hh*60*60+mm*60+ss
som kan sammenlignes og traekkes fra hinanden

man kan ogsaa nemt regne den anden vej
Avatar billede jakobdo Ekspert
01. juli 2008 - 22:08 #4
Hvis du har datoen gemt som date eller datetime i mysql, så kan du bruge:
SELECT UNIX_TIMESTAMP(dato) AS newDate FROM tabel
Avatar billede hp-power Nybegynder
01. juli 2008 - 22:15 #5
syntes det er lidt sjov måde at gøre det på. kan godt være der er fordi jeg er nybegynder at der virker mærkelig.

det skal bruges til hvis jeg får tallet 21:10:55 fra tabelen og klokken er 21:30:55 vil jeg gerne vide hvormange sekunder der er  imellem de to tider;
Avatar billede jakobdo Ekspert
01. juli 2008 - 22:17 #6
Så du mit indlæg ?
Avatar billede arne_v Ekspert
01. juli 2008 - 22:19 #7
formlen er perfekt til det formaal

(hvis du har dato paa, saa brug Jakobs metode !)
Avatar billede hp-power Nybegynder
01. juli 2008 - 22:26 #8
ja jeg så godt indlægget det er også fint.. men hvad så hvis jeg her en anden tid i en variabel
Avatar billede hp-power Nybegynder
01. juli 2008 - 23:25 #9
efter lidt hjælp fra php.net og jer begge to.
fandt en gammel indlæg fra jakobdo der konverter sek om til timer og min og sek. så ved hjælp af denne og og arne's gange stykke. samt php hjælp med hvordan jeg lavede function og substr til at dele tide med. lykkes det mig at få lave 2 funktions som jeg har gemt i php fil. så det er let at kalde den.

Filen ser sådan ud..


<?
    function sektiltid($sek){
        $allesekunder = $sek;
        $sekunder = $allesekunder % 60;
        $alleminutter = floor( $allesekunder / 60 );
        $minutter = $alleminutter % 60;
        $alletimer = floor( $alleminutter / 60 );
        $timer = $alletimer % 24;
        $alledage = floor( $alletimer / 24 );
        if ($sekunder <=9){
            $sekunder = "0" . $sekunder;
        }
       
        if ($minutter <=9){
            $minutter = "0" . $minutter;
        }
       
        if ($timer <=9){
            $timer = "0" . $timer;
        }
        $resultat = "$timer:$minutter:$sekunder";
        return $resultat;
    }
   
    function tidtilsek($tid) {
        $s = substr("$tid", -2, 2);
        $m = substr("$tid", -5, 2);
        $t = substr("$tid", -8, 2);
        $m = $m * 60;
        $t = $t * 3600;
        $sum = $s + $m + $t;
        return $sum;
       
    }
?>

syntes det er rart når folk vil skrive deres svar hvis de selv finder det.

men jeg ved ikke helt med points i skal vel næsten dele dem.
Heino
Avatar billede coderdk Praktikant
02. juli 2008 - 00:48 #10
En simplificeret udgave af dine funktioner, som vistnok burde virke på samme måde:

    function SekTilTid($sek)
    {
        return date( "H:i:s", mktime( 0, 0, $sek ) );
    }
   
    function TidTilSek($tid)
    {
        list( $h, $m, $s ) = explode( ":", $tid );
        return $h * 3600 + $m * 60 + $s;
    }

:)
Avatar billede arne_v Ekspert
02. juli 2008 - 02:47 #11
Den udnytter en smart feature i mktime.

Måske er:

function SekTilTid($sek) {
    return sprintf("%02d:%02d:%02d", $sek / 3600, ($sek / 60) % 60, $sek % 60);
}

mere forståelig.
Avatar billede arne_v Ekspert
02. juli 2008 - 02:47 #12
Og et svar fra mig.
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