if(h1<10) h = "0" + h1; if(m1<10) m = "0" + m1; if(s1<10) s = "0" + s1; /* ^ - h, m og s bliver ikke nødvendigvis sat så de eksisterer ... derfor rettet dem til h1, m1 og s1 */
... nåh fik det vist kastet op i head med en return istedet ... men det kan jo også gøres som du gjorde før :o)
<script type="text/JavaScript"> function gettTime(tim) { var newtime = new Date(tim);
nu har jeg godt nok i stendet for: 30515000 et indput fra: <%=rs_kald("na")%>
Output bliver rigtig nok bortset fra når jeg bruger: <%=rs_kald("na")%> bliver der tilføjet 1 time, dvs. når jeg for 0 som input skriver den aligevel: 01:00:00
hmm, den returnere i forhold til gmt ... kigger lige (prøv at skifte til gmt på dit win ur ... så står den fint ??? ) kan denne her: <%=rs_kald("na")%> ... evt. outputte så det er gmt tid ... i vores tilfælde skal der så trækkes en time fra outputtet - ser lige lidt på js time ... ?
Update, [ kan man ikke bare minus 1 med h1 permenent ? ] Så tager den ikke hensyn til forskellige tidszoner ... ovenstående virker lidt omstændelig - med der skal trækkes tiden fra - da tidspunktet baserer sig på hvad uret står på pc'en står til ... ved ikke om den virker godt nok - men jeg er desværre nødt til at smutte (arbejde kl 8:30) ... men er tilbage på pinden iløbet af imorgen :o)
Jeg tænkte mere på hvis man kunne næmt lave 24/08-2006 02:35:12 om til at hvert sek. opdatere den med settimeout og tilføjer 1000 millisek. til de angivende mullisek. ?
<script type="text/JavaScript"> var stime = 1156380221718 ; var ltime = new Date().getTime(); var afvigelse = Math.round((ltime - stime)/1000); alert(ltime);
function startTime(){
var h = Math.floor(afvigelse/3600); var m = Math.floor((afvigelse%3600)/60); var s = afvigelse%60;
if(h<10) h = "0" + h; if(m<10) m = "0" + m; if(s<10) s = "0" + s;
document.getElementById("txt_wa").firstChild.nodeValue = h + ":" + m + ":" + s;
Nu har jeg ordnet det ord... det var bare... document.write() der skulle væk...
Men jeg har 2 af disse ure på siden... det første ur vriker ikke mere... det er forsvundet... Jeg har prøvet at ændre navnet på funktionen til dette: startTime12() Men det virker ikke...!
Det andet ur ser således ud, og skal bare forblive intakt... for den er i et helt andet sted i koden, de skal bare kunne køre samtidig...:
<script language="jscript" runat="server"> var myTime = new Date().valueOf(); </script> <script type="text/JavaScript"> var stime = new Date(<%=myTime%>); var ltime = new Date().getTime(); var afvigelse = stime - ltime;
function startTime() { var now = new Date(); var newtime = new Date(now.getTime()+afvigelse);
h = newtime.getHours(); m = newtime.getMinutes(); s = newtime.getSeconds();
if(h<10) h = "0" + h; if(m<10) m = "0" + m; if(s<10) s = "0" + s;
document.getElementById("txt").firstChild.nodeValue = h + ":" + m + ":" + s
<script language="jscript" runat="server"> //var myTime = new Date().valueOf(); </script> <script type="text/JavaScript"> //var stime2 = new Date(<%=myTime%>);
var stime2 = new Date().getTime()-100000;
til:
<script language="jscript" runat="server"> var myTime = new Date().valueOf(); </script> <script type="text/JavaScript"> var stime2 = new Date(<%=myTime%>);
[ Den har virket, hvorfor gør den ikke det mere ? ] ... muligvis fordi at din maskine ikke har præcis samme tidsindstilling som serveren - eller fordi at din server taber tid ? Prøv at udskrive tiden i timer og minutter på en side du laver på serveren og sammenligne det med din pc's ur ...
( det er ikke en fejl i 18:22:40 som sådan ... hvis du prøver var stime2 = new Date().getTime(); så burde den starte ved 0 og ikke 3min og 23 sekunder ... m.h.t. det ur på din maskine vs. serveren kan der også gå en lille smule tid fra den når fra serveren til din maskine ... så selvom serverens ur og dit ur er sat ens kan der godt være 1 sekund i forskel)
... men, jeg faldt lige over en fejl jeg lavede da jeg rettede nr to funktion:
function startTime2(){
var h = Math.floor(afvigelse/3600); var m = Math.floor((afvigelse%3600)/60); var s = afvigelse%60;
rettes til:
function startTime2(){
var h = Math.floor(afvigelse2/3600); var m = Math.floor((afvigelse2%3600)/60); var s = afvigelse2%60;
Jeg har prøvet at sætte mit computer-ur tilbage med 10 min. og uret gå 10 min. xtra bagud... Men funktionen og meningen (som den gjorde før) med scripet er at den tager computertiden og forskellen mellem den og servertiden... og tilføjer til computertiden for at få den aktuelle servertid der går...
<script language="jscript" runat="server"> //var myTime = new Date().valueOf(); </script> <script type="text/JavaScript"> //var stime2 = new Date(<%=myTime%>);
var stime2 = new Date().getTime(); /* ved ikke med det -100000 ... tror mere det er et problem når det er tiden fra serveren af */ var ltime2 = new Date().getTime(); var afvigelse2 = stime2 - ltime2;
function startTime2() { var now = new Date(); var newtime = new Date(now.getTime()+afvigelse2);
var h = Math.floor(afvigelse2/3600); var m = Math.floor((afvigelse2%3600)/60); var s = afvigelse2%60;
if(h<10) h = "0" + h; if(m<10) m = "0" + m; if(s<10) s = "0" + s;
document.getElementById("txt").firstChild.nodeValue = h + ":" + m + ":" + s
Efter test så i sidste script del: var stime = new Date().getTime() ; rettes til: var stime = <%=rs_kald("na")%> ;
vedrørende dit problem med script nr 2 ved jeg ikke hvad <%=rs_kald("na")%> returnerer ... det er asp - og jeg har ikke sat mig ind i det ... muligvis returnerer det ikke med ms. ? ... det ser nærmest sådan ud ? hvis det er tilfældet kan du sikkert gøre sådan her: var stime = <%=rs_kald("na")%>*1000; ...
D.v.s. at hvis du bruger 19:04:06 med den ekstra rettelse der lægger i 24/08-2006 19:07:49 så får du problemet ??? Hmm... når jeg prøver testen i 19:04:06 så virker den hos mig ... gør den det hos dig?
... det eneste der så skiftes er aktivering af 19:07:49 og så får du samme resultat som før? hvad output giver <%=rs_kald("na")%> (eksempelvis) og hvad giver den hvis du ganger den op med 1000 som nævnt ovenover - det hjalp ikke ... det kan så vidt jeg regner ud ikke give både det samme hvis du tager det nye eksempel og ganger op med 1000 eller lader være - og heller ikke når jeg har fjernet de -100000 fra stime2 ???
En hurtig var stime = new Date().getTime() ; alert(stime); returnerer: 1156454625822 ... og så er 16448000 altså en del derfra ... for at være præcis: 1156438177822 milisekunder ... jeg tror derfor at du skal bruge noget andet i asp for at outputte tiden i unix ms ... altså noget der svarer til php's <?php echo time(); ?>
^ - ordene jeg tror i ovenstående sætning skulle ikke stå der ... du skal bruge noget andet end den tidsdefinering - ellers skal scriptet rettes om ... hvad står 16448000 for ?
... scriptet du havde regnede med unix ms ... og når man unix ms til den værdi det asp noget står for er vi meget lidt længere tilbage i tiden end de 5 timer ... derfor tager vi et unix timestamp i js og trækker de antal sekunder du har fra tiden ... alternativet er: var stime = new Date().getTime(-<%=etellerandetdergiverunixtime-rs_kald("na")%>);
ups ... var stime = new Date().getTime(<%=etellerandetdergiverunixtime-rs_kald("na")%>); ... men jeg har kun rodet med php ... Har asp slet ikke en unix time ?
ups igen ... var stime = <%=etellerandetdergiverunixtime-rs_kald("na")%>; ... der er jo ikke grund til at oprette en tid og så hive den samme tid ud igen :D
en window.onload funktion der ser sådan ud - og som ikke virker ... nej, det passer ikke... ( den virker selvfølgelig ikke hvis funktionerne startTime() eller startTime2() ikke eksisterer og kan også gå i stå hvis man har fejl i andre scripts...
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title> <script type="text/javascript">
window.onload = function(){ startTime(); startTime2(); alert("ved 2 alerts så virker funktionen fint"); /* hvis du slet ingen alerts får har du noget indhold der aldrig bliver loadet ... eller en body onload eller en anden window.onload der konflikter */ }
function startTime(){ alert("opkaldet til funktion startTime() virkede"); }
function startTime2(){ alert("opkaldet til funktion startTime2() virkede"); }
og hvilket browser versions nr. evt. ? Det må næsten være en fejl i din browser - eller for stram sikkerhed ... 25/08-2006 00:04:07 burde virke i alle browsere...
F5 eller evt. ctrl + F5 ... har aldrig oplevet det selv, det kan tænkes at du sidder bagved en træls proxy - at du har noget caching på din pc aktiveret eller at din server kører med noget filcaching og at det derfor ikke slår igennem med det samme ...
The Web server cannot find the file or script you asked for. Please check the URL to ensure that the path is correct.
Please contact the server's administrator if this problem persists.
... men fejlen du får betyder at elementet mangler i dette tilfælde f.eks.: <b id="txt">00:00:00</b> eller: <b id="txt"> </b> _ikke_ <b id="txt"></b> ... for ellers skal vi først til at appende en textnode istedet for at rette teksten ... og det gør scriptet tungere ...
der skulle bare stå noget i: <b id="txt"></b> der skulle lige ændres i denne.. fra + til - med afvigelsen...: var newtime = new Date(now.getTime()-afvigelse);
Det var vist det...: sådan er slutsresultatet kommet til at se ud...:
<script language="jscript" runat="server"> var myTime = new Date().valueOf(); </script> <script type="text/JavaScript"> var stime = new Date(<%=myTime%>); var ltime = new Date().getTime(); var afvigelse = ltime - stime;
function startTime() { var now = new Date(); var newtime = new Date(now.getTime()-afvigelse);
h = newtime.getHours(); m = newtime.getMinutes(); s = newtime.getSeconds();
if(h<10) h = "0" + h; if(m<10) m = "0" + m; if(s<10) s = "0" + s;
document.getElementById("txt").firstChild.nodeValue = h + ":" + m + ":" + s
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.