Avatar billede bigo Nybegynder
11. december 2006 - 13:06 Der er 6 kommentarer og
1 løsning

Beregn timer og minutter

Hejsa.

Jeg har følgende kode (som ikke virker)

java script:

var d=document;
function gE(id){return d.getElementById(id)}
function gA(o,tag){return o.getElementsByTagName(tag)}


function calc_time(n)
{
      if (n==0)
    {
        var t1 = d.getElementById('start_time'+[n-1]).value;
    }
      else
      {
          var t1 = d.getElementById('real_time'+[n-1]).value;
      }
    var t2 = d.getElementById('nom_time'+[i]).value;
    var t3 = d.getElementById('trans_time'+[i]).value;
    tid1 = sek(t1);
    tid2 = sek(t2);
    tid3 = sek(t3);
    tid = tid1 + tid2 + tid3;
    strtidtim = Math.floor(tid/3600);
    strtidmin = Math.floor((tid % 3600)/60);
    if (strtidtim < 10) strtidtim = "0" + strtidtim;
    if (strtidmin < 10) strtidmin = "0" + strtidmin;
    return (strtidtim + ":" + strtidmin);
}

function sek(str){
    tiden = str.slice(0, 2) * 60 * 60;
    tiden += str.slice(3, 5) * 60;
    return tiden;
}

function calc_all() {
    var inpts, divs = gA(gE("cont"), "DIV");
    for ( i=0; i<divs.length; i++ ) {
        inpts = gA(divs[i], "INPUT");
        for ( j=0; j<inpts.length; j++ ) {
            if (inpts[j].className=="showTimeInp" )
            {
                            inpts[j].value = calc_time(j);
            }
        }
    }
}

PHP:
            <span>
                <input type=text id=start_time$i name=start_time[] size=5 readonly value='".date("H:i", strtotime($row[start_time]))."' class='showTimeInp'>
            </span>
            <span>
                <input type=text id=nom_time$i name=nom_time[] size=5 readonly value='".date("H:i", strtotime($row[nom_time]))."' class='showTimeInp'>
            </span>
            <span>
                <input type=text id=real_time$i name=real_time[] size=5 value='".date("H:i", strtotime($row[real_time]))."' class='showTimeInp' onchange='this.value=calc_all($i);'>
            </span>
            <span>
                <textarea id=service_text$i name=service_text[] cols=50 rows=3>$row[service_text]</textarea>
            </span>
            <span>
                <input type=text id=trans_time$i name=trans_time[] size=5 value='".date("H:i", strtotime($row[trans_time]))."' class='showTimeInp' onchange='this.value=calc_all($i);'>
            </span>


Det jeg gerne vil have er følgende:

Starter med start_time + nom_time = real_time.
Derefter er det real_time + nom_time + trans_time = real_time.

Men den vil ikke..
Avatar billede olebole Juniormester
11. december 2006 - 13:15 #1
<ole>

Det forstår jeg ikke lige  =)

/mvh
</bole>
Avatar billede bigo Nybegynder
11. december 2006 - 13:20 #2
jeg har 4 felter: start_time[n], mon_time[n], real_time[n] og trans_time[n]
Med udgangspunkt i det første start_time (det skal kun være det første) skal der beregnes tid for real_time[n]. Dvs. at real_time - første gang - er start_time + nom_time, derefter er real_time = forrige (n-1) real_time + trans_time[n] + nom_time[n]

I did my best ;-)
Avatar billede bigo Nybegynder
11. december 2006 - 13:51 #3
Ka du hitte u a de?
Avatar billede bigo Nybegynder
12. december 2006 - 13:27 #4
fixed... damn ..

function calc_all() {
    var inpts, divs = gA(gE("cont"), "DIV");
    for ( i=0; i<divs.length; i++ ) {
        inpts = gA(divs[i], "INPUT");
        for ( j=0; j<inpts.length; j++ ) {
            if (inpts[j].className=="showTimeInp" )
            {
                            inpts[j].value = calc_time(i);
            }
        }
    }
}

inpts[j].value = calc_time(j);
skal være
inpts[j].value = calc_time(i);
Avatar billede bigo Nybegynder
12. december 2006 - 13:27 #5
.
Avatar billede olebole Juniormester
12. december 2006 - 13:59 #6
Sorry ... har ikke fået mails i denne tråd. Det var godt, du selv fandt ud af det  :o)
Avatar billede bigo Nybegynder
12. december 2006 - 22:07 #7
Det er helt i orden. Du hjælper til overalt jo.. travl mand.
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