Avatar billede jwulff Nybegynder
13. marts 2008 - 17:22 Der er 5 kommentarer og
1 løsning

Vis tid tilbage til kl. 17.00

Hej,

Er der nogen der kender eller kan hjælpe med et script, der viser hvor lang tid der er til kl. 17.00 ?

Tiden skal kun vises mellem kl. 12.00 og 16.59, resten af tiden skal det bare være "usynligt"

Håber I kan hjælpe :)

/Jacob
Avatar billede hells Nybegynder
13. marts 2008 - 18:36 #1
<script type="text/javascript">

var d = new Date();
time = d.getHours();
minut = d.getMinutes();
if(time>=12&&time<19){
  //hvis tallet er helt, er timeforskellen de to timetal trukket fra hinanden:
  if(minut==0)
    document.write((17-time)+":00");

  //ellers skal der trækkes en fra timeforskellen, da dette ikke er helt:
  else
    document.write((17-time-1)+":"+(60-minut));
}

</script>
Avatar billede kalp Novice
13. marts 2008 - 18:41 #2
jeg har bare lavet det her hurtigt, så har ikke lige tænkt over "uhensigtmæssigheder" :D

men du kan altid små justere på den så den er perfekt;)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
        <TITLE>kalps count down</TITLE>
        <script type="text/javascript">
            //start counting from
            var startDate = new Date();
            startDate.setHours("12");

            //to
            var endDate  = new Date();
            endDate.setHours("19");
            endDate.setMinutes("59");
            endDate.setSeconds("59");
           
            function CheckDates(){
              var currentTime = new Date();
              if(  currentTime.getHours() > startDate.getHours()
                && currentTime.getHours() < endDate.getHours()
                && currentTime.getMinutes() < endDate.getMinutes()){
                    var output = endDate.getHours() - currentTime.getHours() + " hours ";
                    output += endDate.getMinutes() - currentTime.getMinutes() + " minutes ";
                    output += endDate.getSeconds() - currentTime.getSeconds() + " seconds ";

                    document.getElementById('timefield').value = output;
                    setTimeout("CheckDates()",1000);
                }else{
                  document.getElementById('Message').style.display = "block";
                }
            }
        </script>
    </HEAD>
    <BODY onload="CheckDates();">
        <label style="color:green;font-weight:bold;">Time left</label>
        <input type="text" style="width:200px" id="timefield" text="" />
        <div id="Message" style="display:none;"><br />This counter is only active between 12:00 and 17:00.</div>
    </BODY>
</HTML>
Avatar billede kalp Novice
13. marts 2008 - 18:42 #3
ps. jeg har lige, som test i den sat tiden mellem 12 og 20:00
men du behøver kun skrue på "TO" delen.
Avatar billede hells Nybegynder
13. marts 2008 - 18:43 #4
Eller endnu smartere:

var d = new Date();
time = d.getHours();
minut = d.getMinutes();
if(time>=12&&time<17){
  kl_fem = 17*60;
  kl_nu = time*60 + minut;
  diff = kl_fem - kl_nu;
  document.write(Math.round(diff/60)+":"+(diff%60));
}

I det første script, har jeg lavet en lille fejl. I if-sætningen står der 19 af testårsag.
Avatar billede jwulff Nybegynder
14. marts 2008 - 16:25 #5
Hej igen,

kalp -> din kode virker umiddelbart mest simpel og lige til. Problemet er at den skal reloade siden før at den ændrer tiden, er det muligt den tæller ned?

Mvh.
Jacob
Avatar billede kalp Novice
14. marts 2008 - 17:34 #6
problemet er, at det sagde du ikke noget om.
men her reloader den.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
        <TITLE>kalps count down</TITLE>
        <script type="text/javascript">
            //start counting from
            var startDate = new Date();
            startDate.setHours("12");

            //to
            var endDate  = new Date();
            endDate.setHours("19");
            endDate.setMinutes("59");
            endDate.setSeconds("59");
           
            function CheckDates(){
              var currentTime = new Date();
              if(  currentTime.getHours() > startDate.getHours()
                && currentTime.getHours() < endDate.getHours()
                && currentTime.getMinutes() < endDate.getMinutes()){
                    var output = endDate.getHours() - currentTime.getHours() + " hours ";
                    output += endDate.getMinutes() - currentTime.getMinutes() + " minutes ";
                    output += endDate.getSeconds() - currentTime.getSeconds() + " seconds ";

                    document.getElementById('timefield').value = output;
                    setTimeout("ReloadWindows()",1000);
                }else{
                  document.getElementById('Message').style.display = "block";
                }
            }
            function ReloadWindows()
            {
                try{
                window.location.reload();
                }catch(err){}
            }
        </script>
    </HEAD>
    <BODY onload="CheckDates();">
        <label style="color:green;font-weight:bold;">Time left</label>
        <input type="text" style="width:200px" id="timefield" text="" />
        <div id="Message" style="display:none;"><br />This counter is only active between 12:00 and 17:00.</div>
    </BODY>
</HTML>
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