Avatar billede theboy Nybegynder
07. august 2006 - 16:33 Der er 6 kommentarer og
1 løsning

regn med tider og gem i mysql

Hvordan kan jeg regne med tider!

Hvis jeg har 2 tider i formatet tid: min(XX):sek(yy):hundredele(zz)
tid1 = XX:yy:zz
Tid2 = XX:yy:zz

hvordan jeg så finde forkellen på de to tider (altså hvordan trækkr jeg den ene tid fra den anden?

Hvordan gemmer jeg en sådan i en mysql database. Det alm. format hedder TIMER:MINUTTER:SEKUNDER og indeholder ikke plads til hundredele.
Avatar billede barklund Nybegynder
07. august 2006 - 17:03 #1
Gem dem som et tal i hundrededelesekunder. Altså lad være med at gemme dem formatteret som en streng, men hold dem som et (stort) tal i en INT-kolonne.
Avatar billede jakobdo Ekspert
07. august 2006 - 17:06 #2
Du kan vel gemme det som time, og så bruge funktionen: MICROSECOND()
Avatar billede theboy Nybegynder
09. august 2006 - 09:11 #3
så hvidt jeg kan læse gør microsecond() kun at den returner et timestamp på serveren.

Det kan godt være jeg skal gøre som barklund beskriver så skal jeg bare have lavet to funktioner. En til at lave en tid om til hundrededele sekunder (det skulle være den nemme funktion) og så en funktion der gør det modsatte.
Avatar billede barklund Nybegynder
09. august 2006 - 09:26 #4
Begge dele er nemme at lave - for eksempel:

function str2mil($str) {
    $a = explode(":", $str);
    return intval($a[2]) + 100 * (intval($a[1]) + 60 * intval($a[0]));
}
function mil2str($mil) {
    $h = $mil % 100;
    $mil = floor($mil / 100);
    $s = $mil % 60;
    $mil = floor($mil / 60);
    $m = $mil;
    return str_pad($m, 2, "0", STR_PAD_LEFT) . ":" . str_pad($s, 2, "0", STR_PAD_LEFT) . ":" . str_pad($h, 2, "0", STR_PAD_LEFT);
}
// test
print mil2str(str2mil("02:56:99"));
print str2mil(mil2str(99999));

:)

--
Morten Barklund
Avatar billede theboy Nybegynder
09. august 2006 - 10:23 #5
Det er bare perfekt.
Smid du bare en svar.

Jeg takker.
Avatar billede barklund Nybegynder
09. august 2006 - 10:57 #6
Yup :)
Avatar billede barklund Nybegynder
09. august 2006 - 11:36 #7
Tark for points :)
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