Countdown

Reiska

Saakohan mitenkään seuraavanlaista koodia muuntamalla samalle html-sivulle kahta tai useampia eri lähtölaskentoja (eri päivämäärille)?


---------------------------------------





Sitten varsinainen scripti:








...jonka tuloste tulee tähän:






---------------------------------------

3

309

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • kirjoittaa

      koodin loppuun, periaate tämä:

      var tim, run = false;
      var then = new Date(2005,5,10,23,0,0);
      var then2 = new Date(2005,7,12,14,0,0);
      var thentime = then.getTime();
      var thentime2 = then2.getTime();

      function stopTimer() {
      if (run) clearTimeout(tim);
      run = false;
      }

      function counter() {
      var now = new Date();
      var diff = thentime - now.getTime();
      var diff2 = thentime2 - now.getTime();

      jne. loppuosan ((kentän formatoinnin) saat hoitaa itse. Monista vaikka loppuosa ja vaihda kaikki diff -> diff2 jne ja pävitä kenttätiedot.

      • ja kirjoittaisinkin

        jos osaisin :)

        Pari tuntia yritin koodia runkkailla suuntaan jos toiseen...

        Tarkoitus olisi siis saada formi vaihtamaan ajankulku toiseen countdowniin kunnes edellinen on mennyt nolliin.

        Nyt tilanne on tämä:


      • tyyppiä kömpelö,
        ja kirjoittaisinkin kirjoitti:

        jos osaisin :)

        Pari tuntia yritin koodia runkkailla suuntaan jos toiseen...

        Tarkoitus olisi siis saada formi vaihtamaan ajankulku toiseen countdowniin kunnes edellinen on mennyt nolliin.

        Nyt tilanne on tämä:

        en jaksa siistä sitä:

        function counter() {
        var now = new Date();
        var diff = thentime - now.getTime();
        var diff2 = thentime2 - now.getTime();

        var days = Math.floor(diff / 86400000);
        var dD = days * 86400000;
        var hrs = Math.floor((diff - dD) / 3600000);
        var hD = hrs * 3600000;
        var mins = Math.floor((diff - dD - hD) / 60000);
        var mD = mins * 60000;
        var secs = Math.floor((diff - dD - hD - mD) / 1000);
        var msec = Math.floor((diff - dD - hD - mD - (secs * 1000)) / 100);
        var d = "Aikaa jäljellä " days " päivää, ";
        var h = hrs " tuntia, ";
        var m = mins " minuuttia, ";
        var s = secs "." msec " sekuntia";
        document.forms[0].elements[0].value = " " d h m s;

        days = Math.floor(diff2 / 86400000);
        dD = days * 86400000;
        hrs = Math.floor((diff2 - dD) / 3600000);
        hD = hrs * 3600000;
        mins = Math.floor((diff2 - dD - hD) / 60000);
        mD = mins * 60000;
        secs = Math.floor((diff2 - dD - hD - mD) / 1000);
        msec = Math.floor((diff2 - dD - hD - mD - (secs * 1000)) / 100);
        d = "Aikaa jäljellä " days " päivää, ";
        h = hrs " tuntia, ";
        m = mins " minuuttia, ";
        s = secs "." msec " sekuntia";
        document.forms[0].elements[1].value = " " d h m s;

        tim = setTimeout("counter()", 100);
        run = true;
        }

        Sinun täytyy tietenkin luoda toinen kenttää kaavakkeeseen mihen saat laskurin toinen arvo näkyviin.

        Hauskaa kun kysytään (asiallisesti, niin kuin sinä teit, koodi mukana ja selkeä selostus mitä haluat tehdä (muussa tapauksessa en viitsisi kirjoittaa näin pitkää ja yksityiskohtaista vastausta)). Joskus on kuitenkin niin, että ei saa yrittää petkuttaa ihmisiä tekemään "suuria" työpanoksia omiin tarkoituksiin! Ellei itse pysty tekemään esim shakkipeliä omille kotisivuille, silloin täytyy joko luopua ajatuksesta tai oppia aiheesta niin paljon että kysymyksien vastaukset ovat muutaman rivin pituisia, eikä vaadita mitään toimivia suuria ohjelmakokonaisuuksia.

        Älä ota tätä henk.koht.kritiikkinä (kysy mielellään lisää jos on tarvetta). Moni muu lukee kuitenkin tätä viestiäsi, ja tuli vaan tilaisuus selittää pelisäännöt.

        Kyllä sinä itse olisit selvittänyt tämän ongelman. Jos olisit ottanut sen alkuperäisen koodipätkän, käynnyt sen rivi riviltä lävitse ja lisännyt jokaisen käskyn(rivin) jälkeen kommentin //täällä rivillä varataan tilaa muuttujalle days (kokonaisluku alaspäin pyörristettynä) millisekunneista. Aikaa olisi tietysti mennyt enemmän mutta samalla olisit oppinut paljon.

        Viimeinen neuvo: Kun joskus olet päässyt siihen pisteeseen että osaat nämä asiat, älä ryhdy ylimieliseksi ja kirjoita (niinkuin minä?) että periaattessa se menee niin tai näin, hoida itse. Asiantuntijan merkki on se että hän pystyy selittämään vaikeita asioita siten että kaikki (?) ymmärtävät mistä on kysymys.

        (PS. Se koko loppulitania tuossa koodissasi mitä sanoin että pystyt kirjoittamaan itse ei ole muuta kuin ison millisekuntilukeman (kokonaismuuttujan) muuttamista tekstimuotoon joten sitä voisi näyttää kentässä. Siksi minä pidin tätä melko vaatimattomana tehtävänä.

        Toinen täkeä asia muistaa (tai muistaa miten pikään tietokone muistaa, (nokkelasti sanottu?) jonkun muuttujan arvon: jos on globaali (määritelty kaikkien funktioden ulkopuolella) arvo muistetaan niin kauan kuin sivu on näkyvillä. Jos on lokaali (määritelty funktion sisällä) sen arvoa muistetaan ainoastaan silloin kun ollaan funktion sisällä, heti kun poistutaan arvo myös unohdetaan (kutsutaan englanniksi "scope" = "kattavuus", sama periaate koskee kaikkia ohjelmointikieliä).

        Sinun tapauksessa esim: tim, run, then, then2, jne. ovat globaalimuuttujia. now, diff, diff2 ovat lokaali muuttujia (koska ne sijaitsevat function Counter() sisäpuolella.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Hallitus pyrkii rajoittamaan kaupan omien halpamerkkien myyntiä

      Helsingin Sanomien mukaan hallitus valmistelee lakihanketta, joka suitsii kaupan valtaa ja rajoittaa omien halpamerkkien
      Yhteiskunta
      237
      3580
    2. Tapettu

      On joku kangaskadulla perjantaina
      Sotkamo
      62
      3268
    3. Björn Wahlroos, maataloustuet lakkautettava

      Sanoo pankkimies. Mitäs persut ja muut tukinulliem perskärpäset tähän? "Wahlroos listaa kansallisen maataloustuen. – I
      Maailman menoa
      79
      2767
    4. Persut päättivät hiilivoiman kieltämisestä Suomessa

      Moni on jo unohanut kuka hyväksyi hiilivoimaloiden kieltämisen Suomessa: persut Sukupuolineutraalit liikennemerkitk
      Maailman menoa
      39
      2601
    5. Työvoimatoimisto

      Nyt kysyisin miksi pitää käydä työvoimatoimistossa paikanpäällä, kun he eivät muuta tee kuin laittavat koneelle uudet ve
      Työttömyys
      94
      2266
    6. Nalle Wahlroos ei ulise kuten Teemu Selänne sähkölaskuista

      Nalle "hah hah" nauroi saamistaan sähkötuista, kun taas Teemu-poika itkeä tirautti kovasta sähkön hinnasta. Nalle nauro
      Maailman menoa
      28
      1963
    7. Muistattekos kuinka kokoomus ja persut vinkuivat sähkön hinnasta?

      Oppositiossa vuonna 2022, kun sähkön hinta uhkasi nousta 20 senttiin kilowattitunnilta? Nyt ovat hiiren hiljaa, kun pitä
      Maailman menoa
      91
      1961
    8. Vain persut vastustivat hiilivoimaloiden alasajoa

      Persut vastusti jyrkästi hiilen kieltolakia ja on myöhemmin vaatinut hiilivoimaloiden pitämistä käytössä. He perusteliva
      Maailman menoa
      41
      1854
    9. Mikä aate kaiken pahan takana?

      Se laiskistuttaa kansat, opettaa vaatimaan etuisuuksia, syleilee maailmoja eikä omaa kansaa.
      Maailman menoa
      101
      1763
    10. Mietin sua liikaa

      Mietin nytkin sitä, että millaista se olisi tulla kotiin, kun sinä olisit täällä vastassa. Tai niin päin, että sinä tuli
      Ikävä
      69
      1093
    Aihe