» »

[js] Racunanje casa

[js] Racunanje casa

Beezgetz ::

Ola Slo-Tech,

To iscem zdaj ze en teden po netu, in tudi sam se matram, toda ne morem priti do dna...

Torej, preracunavanje casa. Konkretno me zanima za js, toda mi bo prav prislo tudi za javo, c#, in najbrz tudi za druge jezike.

Imam sekunde za osnovo, pa me zanima kako bi iz tega dobil minute, ure, ali celo dneve.

JS mi dela tako, da steje cas ko je uporabnik na strani, in izpise ta cas. Toda nasel sem skripto ki to posne samo za sekunde.
Poizkusam te sekunde spremenit v primerne minute, in naprej, ure dneve...

js:
function obisk() {
   enter=new Date();
}

function slovo()
{
   exit=new Date();
   time_dif=(exit.getTime()-enter.getTime())/1000;
   time_dif=Math.round(time_dif);
   document.getElementById('cas').innerHTML="Na tej strani ste: "+time_dif+" sekund";
   t=setTimeout('slovo()',500);
}


V html-ju v head-u klicem to skripto in naprej:
<body onload=" obisk(); slovo()">
<div id="cas"></div> <!--tu izpise sekunde-->
...
...


Toda kako naj spremenim v minute, ko je cas vec kot 60 sekund, oziroma v ure, ko je cas vec kot 3600 sekund?

Imam neko osnovo z if stavki, pac ce je manjsi od 60 sekund, drugi if stavek ce je med 60 in 3600, in tretji ce je nad uro.

Osnovna formula je recimo takole:

sekunde = zacetek obiska - trenutni cas

ce je vec kot ali enako 60 sekund
cas = sekunde / 60

Prvi problem je ze tu.
Ostanek spremenljivke cas je treba mnozit s 60 da dobim sekunde,
cela stevilka spredaj so pa minute.

Ta transformacija mi dela probleme, kako da razdelim spemenljivko cas,
da dobim minute in ostanek. Probal sem z %, toda to da celo stevilko, jaz pa rabim pol spredaj dodat "0.",
da dobim stevilko manjso od 1.


Ce bomo to porihtal, bom lahko tudi ure in dneve lahko postimal.

Hvala, Beezgetz

Beezgetz ::

ok, zdaj to dela do neke mere.
Problem je, ko pride na 10 minut, mi izpise 1 namesto 10, torej samo prvo stevilko.

Imam pa vprasanje glede switch-a, saj pobere default...

function obisk() {
   enter=new Date();
}

function slovo()
{
   exit=new Date();
   time_dif=(exit.getTime()-enter.getTime())/1000;
   time_dif=Math.round(time_dif) + 3595;
    
   if(time_dif < 60)
       {
        document.getElementById('cas').innerHTML="Na tej strani ste: "+time_dif+" sekund";
       }   
       
   if(time_dif >= 60 && time_dif < 3600)
       {
           cifra = time_dif / 60;
           cifra = cifra.toString().replace(",", ".");
           aric = cifra.split('.').toString(); 
           sekunde = time_dif % 60;

           switch (aric[0])
               {
                   case 1:
           document.getElementById('cas').innerHTML="Na tej strani ste: "+ aric[0]+" minuto " + sekunde + " sekund";
                    break;
                   case 2:
           document.getElementById('cas').innerHTML="Na tej strani ste: "+ aric[0]+" minuti " + sekunde + " sekund";
                    break;
                   case 3:
           document.getElementById('cas').innerHTML="Na tej strani ste: "+ aric[0]+" minute " + sekunde + " sekund";
                    break;
                   default:
           document.getElementById('cas').innerHTML="Na tej strani ste: "+ aric[0]+" minut " + sekunde + " sekund";

               }
       }
   t=setTimeout('slovo()',500);
}


Hvala

Beezgetz ::

Reseno, lahko si ogledate cas koliko ste na strani tu:
http://www.goran.beezgetz.com/index.html


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

AJAX kratke naloge

Oddelek: Izdelava spletišč
192292 (1759) Yacked2
»

Ajax readyState == 3 ne deluje?

Oddelek: Izdelava spletišč
9750 (673) Housy
»

JavaScript offsetTop in brskalniki

Oddelek: Izdelava spletišč
8997 (929) shorvat
»

Javascript - izračun razlike v datumih

Oddelek: Programiranje
81925 (1780) kogledom
»

Internet strani kot slideshow

Oddelek: Izdelava spletišč
212112 (1863) sverde21

Več podobnih tem