Avatar billede stigaard Nybegynder
08. juni 2001 - 13:17 Der er 9 kommentarer og
1 løsning

Time, Minut, Sekund indsæt i JavaScript

På en HTML side bruger jeg dette JavaScript til at indlæse tiden lige nu. Scriptet er så genialt at sekunderne skifter, men hvis klientens ur ikke indstillet korrekt (eller bruger man Mac) er det ikke sikkert at der vises en korrekt tid.
Spørgsmålet er så om man kan hente aktuel time, minut, samt sekund via ASP og indsætte i JavaScriptet så funktionen der gør, at uret går stadig virker...???


<p>Klokken er nu:
<script>
<!--
function show2(){
var Digital=new Date()
var hours=Digital.getHours()
var minutes=Digital.getMinutes()
var seconds=Digital.getSeconds()
var dn=\"\"
if (hours>24){
dn=\"\"
hours=hours-24
}
if (hours==0)
hours=24
if (minutes<=9)
minutes=\"0\"+minutes
if (seconds<=9)
seconds=\"0\"+seconds
var ctime=\"<b><font face=\'Verdana\' font size=\'1\' color=\'#000000\'>\"+hours+\":\"+minutes+\":\"+seconds+\" \"+dn+\"</font></b>\"
if (!document.all)
document.write(ctime)
else
tick2.innerHTML=ctime
}
function loadclock(){
if (document.all)
setInterval(\"show2()\",1000)
}
if (!document.all)
show2()
//-->
</script>
</p>
Avatar billede toro Nybegynder
08. juni 2001 - 13:27 #1
function show2(){
  ...
  var hours=<%Hour(time)%>
  var minutes=<%Minute(time)%>
  var seconds=<%Second(time)%>
  ...
}

virker måske...?
Avatar billede toro Nybegynder
08. juni 2001 - 13:28 #2
function show2(){
  ...
  var hours=<%=Hour(time)%>
  var minutes=<%=Minute(time)%>
  var seconds=<%=Second(time)%>
  ...
}

even 8)
Avatar billede stigaard Nybegynder
08. juni 2001 - 13:54 #3
toro: Jeg får nu tiden ind via ASP men sekunderne skifter ikke... Er der nogle der har et bud?
Avatar billede slash Nybegynder
08. juni 2001 - 14:03 #4
asp afvikles jo på serveren som returnerer en side til dig! Når du får tiden ind via asp, så skal dokumentet vel requestes på serveren igen... funktionen bliver jo kaldt på klientmaskinen, men asp afvikles serverside! Dvs.
1) siden loades og
var hours=<%=Hour(time)%>
var minutes=<%=Minute(time)%>
var seconds=<%=Second(time)%>
sættes til servertiden
2) efter 1 sekund kaldes funktionen igen, men tiden vil være den samme som ved 1), da .asp siden ikke afvikles igen!

Så jeg tror ik\' du kan gøre det med .asp i en håndevending! Kan man ik\' via js synkronisere med nogle tidsservere på nettet?
Avatar billede nute Nybegynder
08. juni 2001 - 14:18 #5
hvis du skal ha en klokke som viser tiden løpende (sekund for sekund), så henter den den lokale tiden til clienten. En annen ting du kan prøve, er jo faktisk å sende servertiden som parameter til new Date() i javascriptet ditt:

var Digital=new Date(<%= now() %>);

På den måte så vil alle få vist den samme tid (din servertid) pluss delayet fra server til clienten...

/nute
Avatar billede stigaard Nybegynder
08. juni 2001 - 14:35 #6
nute: Jeg har prøvet men jeg får det ikke til at virke. Har du selv testet det?
Avatar billede nute Nybegynder
08. juni 2001 - 14:43 #7
jeg har ikke selv testet det, men i teorien skal det fungere....hva med:

var Digital=new Date(\"\" + <%= now() %> + \"\");

/nute
Avatar billede stigaard Nybegynder
08. juni 2001 - 15:07 #8
nute: Nej, heller ikke...
Avatar billede dudal Nybegynder
08. juni 2001 - 15:10 #9
Prøv dette, det virker hos  mig.. :-)

<script language=\"JavaScript\">
<!--
    <%
    dtmyear = DATEPART(\"yyyy\",NOW)
    dtmmonth = DATEPART(\"m\",NOW)
    dtmday = DATEPART(\"m\",NOW)
    dtmHour = DATEPART(\"h\",NOW)   
    dtmMinute = DATEPART(\"n\",NOW)
    dtmSecond = DATEPART(\"s\",NOW)
    %>
    var servertime = new Date()
    servertime.setHours(<%= dtmHour %>, <%= dtmMinute %>, <%= dtmSecond %>)
    var CTime=new Date();
    Diff = servertime.getTime() - CTime.getTime();
   

function show2(){
    var Digital = new Date();
    Digital.setTime(Digital.getTime() + Diff);
    var hours=Digital.getHours()
    var minutes=Digital.getMinutes()
    var seconds=Digital.getSeconds()
   
    var dn=\"\"
   
        if (hours>24){
            dn=\"\"
            hours=hours-24
        }
       
        if (hours==0)
            hours=24
       
        if (minutes<=9)
            minutes=\"0\"+minutes
       
        if (seconds<=9)
            seconds=\"0\"+seconds
   
    var ctime=\"<b><font face=\'Verdana\' font size=\'1\' color=\'#000000\'>\"+hours+\":\"+minutes+\":\"+seconds+\" \"+dn+\"</font></b>\"
   
        if (!document.all)
            document.write(ctime)
        else
            document.all.tick2.innerHTML=ctime

}

function loadclock(){
    if (document.all)
        setInterval(\"show2()\",1000)
}

//-->
</script>

/Jesper
Avatar billede stigaard Nybegynder
08. juni 2001 - 15:26 #10
dudal: Sådan!
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