Avatar billede artico Novice
01. august 2012 - 21:47 Der er 4 kommentarer og
1 løsning

Tíd, sec efter kl. 24:00:00

Hej experter

Jeg har flg. select der driller mig:

    $minvagter_sec  = time_to_sec($vagt_tider['dagen_starter']);
    $maxvagter_sec  = time_to_sec($vagt_tider['dagen_slutter']);
    $dagens_arb_tid = 86400 - ($minvagter_sec - $maxvagter_sec);
   
    $maxarbejdstid_idag = $dagens_arb_tid + $minvagter_sec;
   
    $sec_interval = '1800';
    $maxsek      = '86400';
   
    echo 'VAGT START: <select name="vagt_start_idag">';
    echo '<option value="0" >Vælg</option>'; 
       
            for($i = $minvagter_sec; $i <= $maxarbejdstid_idag ; $i+=$sec_interval){
     
                echo '<option value="'.sec_to_time($i).'"';
                echo '>' . sec_to_time($i) . '</option>';
            }
             
    echo "    </select>";

$i bliver efter Kl. 24:00:00 til 24:30:00 , 25:00:00, 25:30:00 26:00:00 og så videre istedet for.. ja i ved nok :-)

Hvad kan jeg lige gøre for at rette ind her ?
Avatar billede DeeDawg Nybegynder
02. august 2012 - 05:41 #1
Kunne vi evt. få lov til at se dine 2 funktioner time_to_sec() og sec_to_time()? :)
Avatar billede artico Novice
02. august 2012 - 13:36 #2
Seføli..

function time_to_sec($time) {
    $hours = substr($time, 0, -6);
    $minutes = substr($time, -5, 2);
    $seconds = substr($time, -2);

    return $hours * 3600 + $minutes * 60 + $seconds;
}

function sec_to_time($seconds) {
    $hours = floor($seconds / 3600);
    $minutes = floor($seconds % 3600 / 60);
    $seconds = $seconds % 60;

    return sprintf("%d:%02d:%02d", $hours, $minutes, $seconds);
}
Avatar billede DeeDawg Nybegynder
02. august 2012 - 15:16 #3
Når du bare sådan uden videre udregner dine resultater ud fra antal sekunder (også kaldet timestamps), er det jo klart at det går over 23:59:59. Det er derfor vi allerede har funktioner til rådighed i PHP til disse opgaver.

$minvagter_sec = strtotime($vagt_tider['dagen_starter']);
echo '>' . date('H:i:s', $i) . '</option>';

Nu kender jeg ikke helt formatet som dine vagttider er gemt i, men du kan se hvilke formater der kan bruges i strtotime() og evt. rette til hvis nødvendigt. :)

strtotime()
date()
Avatar billede artico Novice
02. august 2012 - 16:12 #4
Jo, tak.. det virker lidt bedre :-) ... jobber videre, send et svar.
Avatar billede DeeDawg Nybegynder
02. august 2012 - 18:25 #5
Hermed sendt. ;)
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