Avatar billede kodak Mester
06. marts 2012 - 19:54 Der er 6 kommentarer og
1 løsning

beregn timer / tid

Hvordan kan jeg beregne tid med php

hvis jeg har disse info
$value_X: Timer om dagen
$val_X1: Starte kl. (Eks. 07:00)
$val_X2: Stopper kl. (Eks. 15:30)
$val_X3: Pause på x tid. (Eks. 00:15)
$total: Samlede timer (Eks. 08:15 timer)

$value_a == $val_a1 - $val_a2 - $val_a3;

$value_b == $val_b1 - $val_b2 - $val_b3;

$total == $value_a + $value_b;

Men jeg kan ikke få det til at funke:
06. marts 2012 - 20:33 #1
Det skulle vel have været
$value_a = $val_a1 - $val_a2 - $val_a3; i stedet for
$value_a == $val_a1 - $val_a2 - $val_a3;
o.s.v.
Avatar billede kodak Mester
06. marts 2012 - 22:59 #2
Dette er mit script:

$start_man = '070000';
$stop_man = '153000';
$pause_man = '001500';
$timer_ugen_man == $start_man-$stop_man-$pause_man;
    if (strlen($timer_ugen_man) <= 5) {
        if (substr($timer_ugen_man, -5, 1) <= 9) {
            $timer_ugen_man = '0'.$timer_ugen_man;
            echo substr($timer_ugen_man, -6, 2).':'.substr($timer_ugen_man, -4, 2).':'.substr($timer_ugen_man, -2, 2);
           
        }
    }

men den smider bare 0:0:0 ud
07. marts 2012 - 06:50 #3
Ikke testet, men hvad får du hvis du ændre den fjerde linje til
$timer_ugen_man = $start_man-$stop_man-$pause_man;
altså med et enkelt lighedstegn.

Din fjerde linje er en påstand at $timer_ugen_man er lig med $start_man-$stop_man-$pause_man;
Avatar billede kodak Mester
07. marts 2012 - 22:39 #4
hvis jeg lavede
$timer_ugen_man = $start_man-($stop_man-$pause_man);
og kun udstrev time og minut viste den korrekt

men begynder jeg så at lægge dagendene sammen viser den bare 00:00
08. marts 2012 - 07:57 #5
Det er under alle omstændigheder = i stedet for == du skal bruge hvis du vil give en værdi til en variabel.  Det var det jeg hæftede mig ved. 

Men nu jeg kikker nærmere på din kode må jeg gøre et par observationer:

1.  Du trækker sluttidspunktet fra starttidspunktet.  Det skulle formodenligt være omvendt, sluttidspunkt minus starttidspunkt.
2.  Du forsøger at trække tekststrenge fra hinanden som om de var tal.  Den kender jeg ikke (og jeg tvivler på at det er muligt.)

Et alternativ kunne være at gå via strtotime funktionen.  Hvis alle tidspunkterne er indenfor den samme dag kan du så udtrykke dem i hh:mm:ss formatet, ellers må du udtrykke dem som yyyy-mm-dd hh:mm:ss.  Her er et eksempel:

<?php
$start_man = '2012-03-08 07:00:00';
$stop_man = '2012-03-08 15:30:00';
$timer_ugen_man = strtotime($stop_man) - strtotime($start_man);
echo $timer_ugen_man;
?>
Det giver 30600, som er tidsforskellen i sekunder, og som du så må arbejde videre med, fratrække pausen og formattere det som ønsket.

Hermed kommer jeg til at slutte.  Jeg opretter det som svar for det tilfælde du skulle finde det til nytte og du ikke får eller finder bedre løsninger.
13. marts 2012 - 17:13 #6
kodak, fik du mit indlæg #5?  Var det til nytte?  Kom ind og fortæl og forklar, hvad den videre hensigt med tråden der.
Avatar billede kodak Mester
19. marts 2012 - 16:55 #7
lige det jeg mente tak for hjælpen.
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