Avatar billede kasper80 Nybegynder
28. november 2005 - 20:30 Der er 8 kommentarer

Digital ur!

Jeg sidder og roder med et digitalt ur på et messageboard jeg har, problemet er(udover at jeg ingen haj til java er) at dette ur viser den lokale computer tid og jeg vil gerne have det til at vise en bestemt servertid.
Nogen der kan gennemskue om man kan sætte den til en bestemt tidszone uafhængigt af den lokale computer der kører scriptet?

Her er scriptet jeg arbejder ud fra!

<script language="JavaScript1.1">
<!--

/*
Live image clock III
Written by Alon Gibli (http://www.angelfire.com/biz6/deathrowtech)
Visit http://wsabstract.com for this script and more
*/

// Setting variables
dig = new Image()
dig[0] = '0.gif'
dig[1] = '1.gif'
dig[2] = '2.gif'
dig[3] = '3.gif'
dig[4] = '4.gif'
dig[5] = '5.gif'
dig[6] = '6.gif'
dig[7] = '7.gif'
dig[8] = '8.gif'
dig[9] = '9.gif'

//writing images
document.write('<table border=1 cellspacing=0 bgcolor="silver">')
document.write('<tr><td><img src="0.gif" name="hrs1"></img>')
document.write('<img src="0.gif" name="hrs2"></img>')
document.write('<td><img src="col.gif"></img>')
document.write('<td><img src="0.gif" name="mins1"></img>')
document.write('<img src="0.gif" name="mins2"></img>')
document.write('<td><img src="col.gif"></img>')
document.write('<td><img src="0.gif" name="secs1"></img>')
document.write('<img src="0.gif" name="secs2"></img>')
document.write('<td><img src="am.gif" name="ampm"></img></table>')

//starting clock function
function showTime() {
now = new Date
ampmtime = now.getHours() - 12
thisHrs = '' + now.getHours() + ''
thisMin = '' + now.getMinutes() + ''
thisSec = '' + now.getSeconds() + ''

if (thisHrs > 9) {
  if (thisHrs >= 12) {
      document.ampm.src = 'pm.gif'
            if (thisHrs==12)
                    newHrs=''+12+''
      if (thisHrs > 12) {
        newHrs = '' + ampmtime + ''
      }
      if (newHrs <= 9) {
        document.hrs1.src = dig[0]
        document.hrs2.src = dig[newHrs.charAt(0)]
      }
      if (newHrs > 9) {
        document.hrs1.src = dig[newHrs.charAt(0)]
        document.hrs2.src = dig[newHrs.charAt(1)]
      }
  }
  else {
      document.ampm.src = 'am.gif'
      document.hrs1.src = dig[thisHrs.charAt(0)]
      document.hrs2.src = dig[thisHrs.charAt(1)]
  }
}
if (thisHrs <= 9) {
  document.ampm.src = 'am.gif'
  if (thisHrs == 0) {
      document.hrs1.src = dig[1]
      document.hrs2.src = dig[2]
  }
  else {
      document.hrs1.src = dig[0]
      document.hrs2.src = dig[thisHrs.charAt(0)]
  }
}
if (thisMin > 9) {
  document.mins1.src = dig[thisMin.charAt(0)]
  document.mins2.src = dig[thisMin.charAt(1)]
}
if (thisMin <= 9) {
  document.mins1.src = dig[0]
  document.mins2.src = dig[thisMin.charAt(0)]
}
if (thisSec > 9) {
  document.secs1.src = dig[thisSec.charAt(0)]
  document.secs2.src = dig[thisSec.charAt(1)]
}
if (thisSec <= 9) {
  document.secs1.src = dig[0]
  document.secs2.src = dig[thisSec.charAt(0)]
}
setTimeout("showTime()",1000)
}

window.onload=showTime
// -->
</script>

Al hjælp vil være meget værdsat!!
Avatar billede roenving Novice
29. november 2005 - 12:04 #1
Du indsætter den server-tid, der er, når du sender !-)

-- til det skal du bruge noget server-side scripting, som kan sætte en variabel ...
Avatar billede kasper80 Nybegynder
29. november 2005 - 12:20 #2
Hmm OK, det var dejligt at høre det kan lade sig gøre, men jeg har ingen anelse om hvordan denne server tid indsættes.
Jeg skal have et seperat script kørende, der styrer servertiden.
Her kan det ovenstående script så kan hente sine værdier, er det sådan nogenlunde det du siger eller hvordan?

igen totalt newbie her så undskyld hvis jeg træder i vande her!
Avatar billede roenving Novice
29. november 2005 - 12:24 #3
Du kan godt indsætte tiden direkte i scriptet fra noget server-side, f.eks. i den linje, hvor now initieres, men det, der er nødvendigt, er at beregne forskellen på den lokale tid og så din (indsatte) servertid, ellers bliver det for hurtigt unøjagtigt !-)
Avatar billede kasper80 Nybegynder
29. november 2005 - 14:12 #4
OK, kan du måske pege mig i retning af hvor jeg finder noget af dette server-side scripting?
Avatar billede roenving Novice
29. november 2005 - 14:15 #5
F.eks. under Programmering/Script/PHP eller Programmering/Script/ASP !-)
Avatar billede kasper80 Nybegynder
29. november 2005 - 14:23 #6
Lige et spørgsmål, bare lige til at forstå koden ovenover lidt bedre.
Hvor nøjagtigt i scriptet bliver tiden hentet fra computeren?
Er det ikke her:

"window.onload=showTime"

nærmere end der hvor Now initieres?
Avatar billede roenving Novice
29. november 2005 - 14:29 #7
Nej, den linjer fortæller bare browseren, at den skal starte showTime-funktionen, når dokumentet er loadet !-)

-- now = new Date(); er det sted, hvor den aktuelle tid hentes ved hvert gennemløb, så man skal gøre noget i denne stil udenfor _alle_ funktioner:

var afvigelse = new Date().getTime() - <? echo $sTime ?>;//tid siden 1/1-1970 i millisekunder

-- og så justere now med afvigelsen hver gang den skal vises !-)
Avatar billede kasper80 Nybegynder
29. november 2005 - 22:07 #8
Jeg kan se hvad du mener og jeg kan se logikken i regnestykket men jeg kan IKKE få det til at virke, du kunne vel ikke gi et bud på hvordan scriptet skal se ud, ligemeget hvad jeg gør så forsvinder uret bare helt fra siden!
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