Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Zliczanie czasu pomiędzy zdarzeniami
jakkolwiek
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 17.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam wszystkich!

czytałem wiele tematów na forum i nie tylko i nie mogę znaleźć rozwiązania dla mojego problemu.
Potrzebuję napisać sobie skrypt, który będzie pomiędzy kliknięciem przycisku "start" zliczał czas
aż do kliknięcia przycisku "stop". Pomyślałem od razu o JS, ale niestety nie znam JS zupełnie,
dlatego też chciałbym całość skonstruować w PHP. Zatrzymałem się w momencie, gdzie skrypt zlicza
microtime od "start" do "stop" i wyświetla różnicę, jednak wynik w formie 0.944234 niewiele mi mówi
i nie bardzo wiem jak to przekonwertować na sekundy albo minuty. Próbowałem też odjąć godziny, w sensie

  1. <?php
  2. $start = date(&#092;"H:m:s\");
  3. $stop = date(&#092;"H:m:s\");
  4.  $xa = $stop - $start;
  5. ?>


ale wynik niestety też nie był zbyt czytelny ani zrozumiały. Bardzo proszę o podpowiedź jak to zrobić za pomocą PHP. Sprawa niby banalna, bo to praktycznie zwykły 'stoper', ale nie mogę sobie z tym poradzić. sad.gif


Pozdrawiam serdecznie!
P. M. R.

P.S. Tak się zastanawiam i chyba trochę zbyt pochopnie wybrałem dział. Jeżeli ktoś z moderatorów stwierdzi, że bardzo to pasuje do działu 'Przedszkole' to bardzo proszę o przeniesienie i przepraszam za omyłkę!

Ten post edytował jakkolwiek 17.07.2008, 13:38:05


--------------------
--
Pozdrawiam serdecznie,
P. M. R.
Go to the top of the page
+Quote Post
artega
post
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

Ostrzeżenie: (0%)
-----


Sprawdź ten kod winksmiley.jpg
  1. <?php
  2.  
  3. $start = time();
  4.  
  5. sleep(rand(1, 5));
  6.  
  7. echo "uplynelo ".(time()-$start)." sekund";
  8.  
  9. ?>
Go to the top of the page
+Quote Post
jakkolwiek
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 17.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Nie, to nie tak. Po wypróbowaniu zwróciło mi: "upłynęło: 1216300231 sek".
Równie nieczytelny wynik miałem przy zastosowaniu microtime(),
pytanie teraz jak to przekonwertować np. na sekundy?
  1. <?php
  2. (time()-$start)*28*365*24*60*60 
  3.  
  4. ?>


nie ma innego sposobu?

Ten post edytował jakkolwiek 17.07.2008, 14:20:13


--------------------
--
Pozdrawiam serdecznie,
P. M. R.
Go to the top of the page
+Quote Post
Shili
post
Post #4





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


Przecież ten kod, co podał Ci artega zwraca czas właśnie w sekundach.

Podaj swój kod może?

Ten post edytował Shili 17.07.2008, 14:29:42
Go to the top of the page
+Quote Post
jakkolwiek
post
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 17.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(Shili @ 17.07.2008, 15:29:12 ) *
Przecież ten kod, co podał Ci artega zwraca czas właśnie w sekundach.

Podaj swój kod może?


tak, w sekundach, tylko że od roku 1970.
Mogę podać mój kod, ale nie wiem co Ci to da. Ja nie chce gotowego rozwiązania tylko nakierunkowania, żebym
mógł sam dojść do rozwiązania winksmiley.jpg

  1. <body>
  2. <form action="<?php PHP_SELF; ?>" method=GET>
  3. <input type=text name=start value=<?php echo(date("H:m:s")); ?> disabled=true size=6><br>
  4. <input type="submit" name=sta value="start">
  5. </form>
  6.  
  7. <form action="<?php PHP_SELF; ?>" method=GET>
  8. <input type=text name=stop value=<?php echo(date("H:m:s")); ?> disabled=true size=6><br>
  9. <input type="submit" name=sto value="stop">
  10. </form>
  11. <?php
  12.  
  13. function microtime_float()
  14. {
  15. list($usec, $sec) = explode(" ", microtime());
  16. return ((float)$usec);
  17. }
  18.  
  19. if(isSet($_GET['sta'])) {
  20. $st = time();
  21. $time_start = microtime_float();
  22. usleep(100);
  23. $time = time();
  24. $godz1 = date(H);
  25. $min1 = date(m);
  26. $sec1 = date(s);
  27.  
  28.  
  29. }
  30.  
  31. if(isSet($_GET['sto'])) {
  32. $www = "883008000";
  33. $xwx = round(((time()-$st)/$www), 4);
  34. echo("<br><br>upłynęło: ".$xwx." sek");
  35. $time_end = microtime_float();
  36. $time = $time_end - $time_start;
  37.  echo('<br><br>niedostępne przez '.$time.' sekund');
  38.  $stop = time();
  39.  $rem = $stop - $time; 
  40.  $min = $time%(60*60);
  41. echo("<br><br><br>".$rem);
  42. echo("<br>".$min);
  43. $godz2 = date(H);
  44. $min2 = date(m);
  45. $sec2 = date(s);
  46.  $xa = $godz1 - $godz2;
  47.  $xb = $min1 - $min2;
  48.  $xc = $sec1 - $sec2;
  49. echo("<br><br><b>".$xa.":".$xb.":".$xc."</b>");
  50.  
  51. }  
  52.  
  53. ?>


--------------------
--
Pozdrawiam serdecznie,
P. M. R.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Nie, to nie tak. Po wypróbowaniu zwróciło mi: "upłynęło: 1216300231 sek".
blinksmiley.gif
Skopiuj kod dokladnie jak ci podano i zobacz dokladnie co ci pokazuje. On ci pokazuje roznice sekund miedzy jednym time() a drugim. Roznica ta w tym kodzie nie bedzie wieksz niz 5. Skoro dostales taki czas co pokazales, to cos namieszales.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jakkolwiek
post
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 17.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Za Twoją radą nospor, zrobiłem sobie drugi plik na szkielecie jaki potrzebuje, ale przy wykorzystaniu tylko kodu od artegi i wynik mi zwrócił: "uplynelo 1216367652 sekund"

cały kod teraz wygląda tak:

  1. <body>
  2. <form action="<?php PHP_SELF; ?>" method=GET>
  3. <input type=text name=start value=<?php echo(date("H:m:s")); ?> disabled=true size=6><br>
  4. <input type="submit" name=sta value="start">
  5. </form>
  6.  
  7. <form action="<?php PHP_SELF; ?>" method=GET>
  8. <input type=text name=stop value=<?php echo(date("H:m:s")); ?> disabled=true size=6><br>
  9. <input type="submit" name=sto value="stop">
  10. </form>
  11. <?php
  12.  
  13. if(isSet($_GET['sta'])) {
  14. $start = time();
  15. sleep(rand(1, 5));
  16. }
  17.  
  18. if(isSet($_GET['sto'])) {
  19. echo "uplynelo ".(time()-$start)." sekund";
  20. }  
  21.  
  22. ?>


nie wiem co tu zrobiłem źle, realny czas pomiędzy wciśnięciem start a stop w tym przypadku to około 15 sekund.


--------------------
--
Pozdrawiam serdecznie,
P. M. R.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




blinksmiley.gif blinksmiley.gif blinksmiley.gif blinksmiley.gif blinksmiley.gif blinksmiley.gif
czy rozumiesz pojecie wklej dokladnie?
Przeciez ty nie wklejasz dokladnie a modyfikujesz pod swoje potrzeby. na dodatek modyfikujesz źle.
Ty masz dwa żądania do strony (realizowane przez dwa formularze) i myslisz ze skrypt ci zapamieta sam z siebie czas miedzy jednym żądaniem a drugim?
Do pamietania sluzy sesja

przenosze na przedszkole


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
artega
post
Post #9





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

Ostrzeżenie: (0%)
-----


@jakkolwiek przydałoby się przewertować manual. Prosty przykład na podstawie Twojego kodu... filtrować dane z $_SERVER i $_POST już musisz sam
  1. <body>
  2. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  3. <input type="hidden" name="start" value="<?php echo isset($_POST['start']) ? $_POST['start'] : time(); ?>">
  4. <?php echo date("H:i:s", isset($_POST['start']) ? $_POST['start'] : time()); ?><br>
  5. <input type="submit" value="start">
  6. </form>
  7.  
  8. <?php
  9. if (isset($_POST['start']))
  10. {
  11. ?>
  12. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  13. <input type="hidden" name="start" value="<?php echo $_POST['start']; ?>">
  14. <input type="submit" name="stop" value="stop">
  15. </form>
  16. <?php
  17.  
  18. if (isset($_POST['stop']))
  19. {
  20. echo "uplynelo ".(time()-$_POST['start'])." sekund";
  21. }
  22. }
  23. ?>

Cytat
Do pamietania sluzy sesja

albo formularz winksmiley.jpg
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Do pamietania sluzy sesja

albo formularz
Albo ciastka. Nie oto mi chodzilo

Chodzilo oto, ze kolesiowi mowi sie jedno, ten robi co innego i mowi ze to co mu sie mowi to nie dziala dobrze. 3 osoby mowily mu jedno, a ten i tak robil swoje i ten tekst ze nie dziala... marnuje nasz czas takimi zagrywkami. no tak sie nie robi.

edit down:
Cytat
nie jestem programistą.
Ale co to ma do programowania? Jedna osoba mowi ci cos, ty robisz cos innego.
Przyklad nie z programowania
Ja mowie: weź wiadro, nalej wody i podlej kwiatki
A ty: bierzesz sitko, lejesz do niego wody i zanim podlejesz kwiatki to oczywiscie wszystko ucieknie. Przychodzi do mnie i mowisz ze moj sposob z wiadrem nie dziala. Na dodatek w rece masz jeszcze to sitko....
Naprawde do tego trzeba byc programistą by zrobic prostą rzecz o ktorej sie mowi?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jakkolwiek
post
Post #11





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 17.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Człowieku i po co się tak spinasz?
Nie bezczelnie, nie jestem programistą.

dzięki artega!
problem rozwiązałem przy pomocy Twojego kodu wcześniejszego, ale trochę inaczej podszedłem do sprawy, dzięki.

temat do zamknięcia jak coś.

Ten post edytował jakkolwiek 18.07.2008, 09:20:11


--------------------
--
Pozdrawiam serdecznie,
P. M. R.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 21:43