Avatar billede nielsen73 Nybegynder
22. august 2006 - 13:53 Der er 12 kommentarer og
1 løsning

Regn med tid - en lille let en - måske.

Hej.
Har lige et lille problem med noget udregning af tid, som der sikkert er en der kan give et hurtigt svar på.

$ind = '09:00:00';
$ud = '17:30:00';
$pause = '00:30:00';

Når jeg vil finde ud af, hvor mange timer der er fra kl. 9 til 17:30 (minus en halv time) kan jeg godt få det til 8.
Men hvis jeg ændrer $ind til '09:30:00' får den det stadig til 8, og ikke 7,5. Er der noget fundamentalt jeg mangler at angive? Som fx noget med detteerklokkenderregnesmed($ind)...
Avatar billede ttopholm Nybegynder
22. august 2006 - 13:56 #1
hvor ikke bruge datediff
Avatar billede barklund Nybegynder
22. august 2006 - 14:01 #2
Et script ville måske også være relevant.
Avatar billede nielsen73 Nybegynder
22. august 2006 - 14:09 #3
Der er da ikke noget i php der hedder datediff??
Et script ville være fint, jeg ved bare ikke hvilke(n) funktioner jeg skal bruge. Skal jeg hen og lave tiden om til noget med en masse sekunder? Det virker sært at php ikke har noget der lige klarer det i en ruf.
Avatar billede well_r Nybegynder
22. august 2006 - 14:13 #4
Avatar billede well_r Nybegynder
22. august 2006 - 14:14 #5
$ind = mktime($ind_timer,$ind_min,$ind_sec);
$ud = mktime($ud_timer,$ud_min,$ud_sec);
$pause = mktime($pause_timer,$pause_min,$pause_sec);

$totaltid = $ud - ($ind + $pause);
Avatar billede well_r Nybegynder
22. august 2006 - 14:15 #6
det er ikke testet! :)

men du forstår vel meningen..
Avatar billede barklund Nybegynder
22. august 2006 - 14:30 #7
Du sagde jo, at du godt kunne få det til 8, men at du ikke kunne få det andet til 7,5 - så har du vel et script? Som så skal rettes til?

mktime vil muligvis være et godt bud, men det er jo lavet til datoer, så det vil måske give issues.
Avatar billede nielsen73 Nybegynder
22. august 2006 - 14:45 #8
Jeg hiver tiderne ud af en database, hvor de er lagt indsom "time". Trækker simpelthen variablerne fra hinanden - echo ($ud-$ind-$pause). Det virker sådan set fint, bortset fra at den kun vil regne i hele tal.
Den med mktime virker heller ikke rigtigt, selvom jeg ikke kan se, hvorfor den ikke burde fungere - (såmangesekunder minus såmangesekunder)/60/60 = antaltimer. Pausen skal selvfølgelig bare angives som et antal sekunder, men det driller alligevel.
Avatar billede nielsen73 Nybegynder
22. august 2006 - 14:49 #9
Men det er selvfølgelig også der der er noget galt! Pausen står jo som en klokkeslet, og skal bare vises som sekunder...! Prøver lige at rode med det.
Avatar billede aeroone Nybegynder
27. august 2006 - 13:50 #10
Jeg kan ikke se hvorledes, du får pausen ind i DB ved hjælp af time() funktionen, men det her skulle virke, så skal du bare sætte ind og ud tider ind i DB.

<pre><?php
$ind = mktime(9, 30, 0, 12, 32, 1997);
$ud = mktime(17, 30, 0, 12, 32, 1997);
$pause = 1800;
$timer= $ud - $ind -$pause;
echo 'Stemplet ind Kl:' . date('H:i:s',$ind)  . '<br>';
echo 'Stemplet ud Kl:' . date('H:i:s',$ud) . '<br>';
echo 'Pause: ' . $pause /3600 . '<br>';
echo 'Antal timer: ' . $timer / 3600 . '<br>';
?>
</pre>
Avatar billede nielsen73 Nybegynder
31. august 2006 - 21:24 #11
aeroone -> Se, den duer. Smid et svar, så får du pointene
Avatar billede aeroone Nybegynder
31. august 2006 - 21:39 #12
Det var da fint :-)
Avatar billede nielsen73 Nybegynder
06. september 2006 - 09:57 #13
Takker!
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