Avatar billede krab Praktikant
03. februar 2005 - 17:56 Der er 9 kommentarer og
1 løsning

Count down med JavaScript og ASP (MANGE POINT)

Hey eksperter...

Jeg skal lige bruge noget hjælp, her er lige noget jeg ikk kan klare... jeg har et count down script, som tæller ned for hvert sek. mit problem er at den skal køre efter serverns tid, og ikke clientens (browserens) tid, det må kunne lade sig gøre..!! mit script ser så ledes ud::

<script>
var before=""
var current="Auktionen er lukket"
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")

function countdown(yr,m,d){
theyear=yr;themonth=m;theday=d
var today= new Date()
var todayy=today.getYear()
if (todayy < 1000)
todayy+=1900
var todaym=today.getMonth()
var todayd=today.getDate()
var todayh=today.getHours()
var todaymin=today.getMinutes()
var todaysec=today.getSeconds()
var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec
futurestring=montharray[m-1]+" "+d+", "+yr
dd=Date.parse(futurestring)-Date.parse(todaystring)
dday=Math.floor(dd/(60*60*1000*24)*1)
dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1)
if(dday<0&&dhour<0&&dmin<0&&dsec<1){
count2.value=current
return
}
else
count2.value=dday+ " dage "+dhour+" timer "+dmin+" min. "+dsec+" sek."
setTimeout("countdown(theday,themonth,theyear)",1000)
}
//enter the count down date using the format year/month/day
countdown(<%response.write(s_date)%>)
</script>

HÅBER NOGLE KAN KLARE DEN!!!
Avatar billede krab Praktikant
03. februar 2005 - 18:26 #1
Ingen der kan sådan en lille en´?
Avatar billede driis Nybegynder
03. februar 2005 - 18:32 #2
<html>
    <body>
        <form>
        <input type="text" name="count" value="" ID="count" size="30">
        </form>
        <script>
            var count2 = document.getElementById("count");
            var today = new Date('<%=now%>');
            today.setSeconds(today.getSeconds()-1);       
           
            var before=""
            var current="Auktionen er lukket"
            var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")

            function countdown(yr,m,d){
            theyear=yr;themonth=m;theday=d
            today.setSeconds(today.getSeconds()+1);
            var todayy=today.getYear()
            if (todayy < 1000)
            todayy+=1900
            var todaym=today.getMonth()
            var todayd=today.getDate()
            var todayh=today.getHours()
            var todaymin=today.getMinutes()
            var todaysec=today.getSeconds()
            var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec
            futurestring=montharray[m-1]+" "+d+", "+yr
            dd=Date.parse(futurestring)-Date.parse(todaystring)
            dday=Math.floor(dd/(60*60*1000*24)*1)
            dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
            dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
            dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1)
            if(dday<0&&dhour<0&&dmin<0&&dsec<1){
            count2.value=current
            return
            }
            else
            count2.value=dday+ " dage "+dhour+" timer "+dmin+" min. "+dsec+" sek."
            setTimeout("countdown(theday,themonth,theyear)",1000)
            }
            //enter the count down date using the format year/month/day
            countdown(2005,6,30)
    </script>
    </body>
</html>
Avatar billede driis Nybegynder
03. februar 2005 - 18:32 #3
(det var ikke fordi jeg ikke ville svare i dit foregående spørgsmål, men jeg har ikke haft tid før nu) ;-)
Avatar billede krab Praktikant
03. februar 2005 - 18:50 #4
Hehe,,, det er bare helt i orden.... troede bare ikke lige du kunne finde ud af mere.. men tusind takk for hjælpen... vil da lige prøve den af :D
Avatar billede krab Praktikant
03. februar 2005 - 19:17 #5
Hey mester...!!

Humm, tjo det virker da..,, men det er lidt underligt,, når jeg sætter serveren 1 dag frem, så tager den 30 dage i scriptet eller så noget... det er i hvert fald mere end 1 dag!
Avatar billede driis Nybegynder
03. februar 2005 - 23:36 #6
Hmm, mon ikke det har noget at gøre med datoformatet (gæt: engelsk på server, dansk på klien)
Avatar billede driis Nybegynder
03. februar 2005 - 23:45 #7
Du kan evt. prøve med:
var today = new Date(<%=Year(now)%>,<%=Month(Now)%>,<%=Day(Now)%>,<%=Hour(Now)%>,<%=Minute(Now)%>,<%=Second(Now)%>);
(Forskellen er at Javascript så ikke skal parse en dato-streng som kan være formateret forkert pga. forskelligt sprog på server og klient, men har værdier for år, måned, dag, time, minut og sekund direkte).

Jeg har ikke testet ovenstående, men du kan sikkert selv hitte ud af det hvis jeg har lavet en fejl. Se evt.:
http://members.ozemail.com.au/~dcrombie/javascript/chap09.html
Avatar billede krab Praktikant
08. februar 2005 - 17:17 #8
Hey mester.. takker for hjælpen... har li et lille spørgsmål mere, hvis du skulle have tid.. hvorfor virker mit script kun i Internet Explore ??

Mvh Krab
Avatar billede driis Nybegynder
08. februar 2005 - 17:48 #9
Grundlæggende er der ofte store forskelle på de forskellige browseres fortolkning af JavaScript. Så det er der ikke en entydig forklaring på.

Men hvis det f.eks. er i FireFox det ikke virker, så har den en meget nyttig JavaScript console hvor du kan se hvor det går galt. Hvis du får det til at virke i både FireFox og IE, har du med stor sandsynlighed dækket omkring 99% af alle brugere. (I og med at Netscape og varianter mere eller mindre bruger samme javascript motor som FF, samt at FF for det meste, i lighed med andre browsere, holder sig til nogle standarder, hvorimod IE indeholder meget Microsoft-specifikt, som ikke findes (eller hedder noget andet) i andre browsere. Så kan du selvfølgelig senere teste i Opera og Safari til Mac, f.eks.
Avatar billede krab Praktikant
08. februar 2005 - 20:39 #10
Humm, takk for forklaringen,. jeg tror faktisk det er her det måske går galt, hedder det ikke noget andet i firefox?

document.getElementById
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
Kurser inden for grundlæggende programmering

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