Sidder med et problem. Jeg vil gerne lave et script, som tæller en brugers tid.
Når en bruger logger ind, blir tidspunktet gemt i en PHP session. Denne session blir lagt i et <input type="hidden"> felt, som så hentes ind i javascriptet, hvorefter en udregning skal laves via. getTime();
Sådan ser mit script ud:
function onlinetimer() { var tidspunkt = document.getElementById("onlinetid").value; var findtime = new Date(); var tidligenu = findtime.getTime();
var differance = tidligenu-tidspunkt; var onlinetid_timer = Math.ceil(differance / (60 * 60)); var onlinetid_minutter = Math.ceil((differance - (onlinetid_timer * (60 * 60))) / 60); var onlinetid_sekunder = differance - (onlinetid_timer * (60 * 60)) - (onlinetid_minutter * 60);
if (onlinetid_timer < 10) { onlinetid_timer = "0".onlinetid_timer; } if (onlinetid_minutter < 10) { onlinetid_minutter = "0".onlinetid_minutter; } if (onlinetid_sekunder < 10) { onlinetid_sekunder = "0".onlinetid_sekunder; }
Du kan prøve: <script type="text/javascript"> function onlinetimer() { var tidspunkt = +document.getElementById("onlinetid").value; var findtime = new Date(); var tidligenu = findtime.getTime(); var differance = tidligenu-tidspunkt; var onlinetid_timer = Math.floor(differance / (1000*60*60)); differance -= onlinetid_timer * 1000*60 * 60; var onlinetid_minutter = Math.floor((differance) / (1000*60)); differance -= onlinetid_minutter * 1000*60; var onlinetid_sekunder = Math.floor(differance/(1000));
if (onlinetid_timer < 10) { onlinetid_timer = "0"+onlinetid_timer; } if (onlinetid_minutter < 10) { onlinetid_minutter = "0"+onlinetid_minutter; } if (onlinetid_sekunder < 10) { onlinetid_sekunder = "0"+onlinetid_sekunder; }
Men det kræver at du ganger dit sessiontid men 1000 (jeg regner med du henter den via time() funktionen), da den er opgivet i sekunder hvorimod javascript opgir deres i millisekunder efter 1970. Du kan selvfølgelig også gøre dette via java script: var tidligenu = findtime.getTime()/1000;
nej, behold bare din php kode som den er. Vi bør hellere udnytte at vi ikke behøver gange eller dividere med 1000 hele tiden, hvis det hele er opgivet i sekunder: function onlinetimer() { var tidspunkt = +document.getElementById("onlinetid").value; var findtime = new Date(); var tidligenu = findtime.getTime()/1000; var differance = tidligenu-tidspunkt; var onlinetid_timer = Math.floor(differance / (60*60)); differance -= onlinetid_timer * 60 * 60; var onlinetid_minutter = Math.floor((differance) / (60)); differance -= onlinetid_minutter * 60; var onlinetid_sekunder = Math.floor(differance);
if (onlinetid_timer < 10) { onlinetid_timer = "0"+onlinetid_timer; } if (onlinetid_minutter < 10) { onlinetid_minutter = "0"+onlinetid_minutter; } if (onlinetid_sekunder < 10) { onlinetid_sekunder = "0"+onlinetid_sekunder; }
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.