Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jesteś na stronie już..... sekundy -> hh:mm:ss
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
lubiemdziem
Witam. Znalazłem skrypt, który pokazuje czas spędzony na stronie w sekunach:
link

Niestety. Bardzo zależy mi na formacie HH:MM:SS. Znalazłem do tego formułkę:
  1. function secondsToHms(d)
  2. {
  3. d = Number(d);
  4. var h = Math.floor(d / 3600);
  5. var m = Math.floor(d % 3600 / 60);
  6. var s = Math.floor(d % 3600 % 60);
  7. return ((h > 0 ? h + ":" : "") + (m > 0 ? (h > 0 && m < 10 ? "0" : "") + m + ":" : "0:") + (s < 10 ? "0" : "") + s);
  8. }



ale sam nie potrafię... próbowałem na wiele sposobów, ale za każdym razem dostawałem "w zamian" pusty input.

Proszę o pomoc i narazie

edit: Śmiało.. trzeba zmienić chyba 3 linijki

edit 2: Kurcze, czas mija, a bardzo zależy mi na tym skrypcie..
Nie wygląda na skomplikowany, ale w związku z tym, że nie siedzę w środowisku JS nie potrafię dodać formułki do skryptu.. Wkleiłem ją tylko. Zobaczcie sami, że to o co proszę, nie wymaga przelania litrów potu:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  3. <meta http-equiv="content-language" content="pl">
  4. </head>
  5. <body onLoad="window.setTimeout('getSecs()',1)">
  6. startday = new Date();
  7. clockStart = startday.getTime();
  8. function initStopwatch()
  9. {
  10. var myTime = new Date();
  11. var timeNow = myTime.getTime();
  12. var timeDiff = timeNow - clockStart;
  13. this.diffSecs = timeDiff/1000;
  14. return(this.diffSecs);
  15. }
  16. function getSecs()
  17. {
  18. var mySecs = initStopwatch();
  19. var mySecs1 = ""+mySecs;
  20. mySecs1= mySecs1.substring(0,mySecs1.indexOf("."));
  21. document.tijd.hiero.value=mySecs1
  22. window.setTimeout('getSecs()',1000);
  23. if (mySecs1==60) {alert("60 sekund ...") }
  24. }
  25.  
  26. function secondsToHms(d) //sekundy na hh:mm:ss
  27. {
  28. d = Number(d);
  29. var h = Math.floor(d / 3600);
  30. var m = Math.floor(d % 3600 / 60);
  31. var s = Math.floor(d % 3600 % 60);
  32. return ((h > 0 ? h + ":" : "") + (m > 0 ? (h > 0 && m < 10 ? "0" : "") + m + ":" : "0:") + (s < 10 ? "0" : "") + s);
  33. }
  34. <form name="tijd">
  35. <input size="8" name="hiero">
  36. </form>
  37. </body>
  38. </html>

To cały kod, ani litery więcej
Tajgeer
  1. document.getElementById('hiero').value = funkcja();
lubiemdziem
Pomógł dla zachęty, ale to nie rozwiązało mojego problemu. Ja JS nie ogarniam, więc nie wiem co dalej. Jak podstawić sekundy do liczby "d" w 31 wierszu?
kamil4u
Kod ~Tajgeer + linia 24: document.tijd.hiero.value=mySecs1 + trochę myślenia i dasz radę. Ew. dodam, że wywołanie funkcji z parametrem robi się tak: funkcja( parametr );
lubiemdziem
Hah. Taka prowizorka, że nie uwierzycie. Ale działa tak, jak powinno. Nawet lepiej bo na start nie ma HH:MM:SS a M:SS i się wydłuża z czasem biggrin.gif Dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.