Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> time() countdown
Waloch016
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 2.10.2010
Skąd: Irlandia

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


Kod:
  1. <body style="background:url('images/bg/wyscig.png')no-repeat left top fixed;
  2. background-size: 100% 100%;">
  3. <?
  4. include('includes/gora.php');
  5. if(!($_GET['scig'])){
  6. ?>
  7. <div style="width:100%; margin-top: 200px;">
  8.  
  9. <div id="wyscig"><br /><br /><br /><br /><br />Poziom 1<br /><a href='wyscig.php?scig=dalej&id=1'><img src="../images/przycisk.png" width="150" height="50" ></a></div>
  10. <div id="wyscig1"><? echo"".$countSec.""?></div>
  11. <div id="wyscig"><img src="../images/trasa.png" width="200" height="200"></div>
  12. </div>
  13. <?
  14. }
  15. elseif($_GET['scig'] == "dalej"){
  16. $try = $_GET['id'];
  17. $teraz = mktime();
  18. $cas = $teraz + 180;
  19. $diffTime = ($czas_w-$teraz); // Difference in time
  20. $countMin = floor(diffTime/60);
  21. $countSec = (diffTime-(countMin*60));
  22. $kierowca = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id='$id_g' "))or die(mysql_error());
  23. $trasa = mysql_fetch_array(mysql_query("SELECT * FROM wyscig WHERE id='$try' "))or die(mysql_error());
  24.  
  25. $wygrana = $kierowca['vmax'] - $kierowca['do100'] - $kierowca['promile'] - $kierowca['zmeczenie'] + ( $kierowca['prowadzenie'] * 0.6 + $kierowca['hamowanie'] * 0.5 + $kierowca['biegi'] * 0.5 + $kierowca['koncentracja'] * 0.2 + $kierowca['szybkosc'] * 0.2 );
  26.  
  27. if($_GET['id'] > 20){
  28. echo"<script type='text/javascript'>window.alert('Podana trasa nie istnieje!');document.location.href = 'wyscig.php';</script>";
  29. }
  30. elseif($kierowca['czas_t'] > $teraz){
  31. echo"<script type='text/javascript'>window.alert('Trenujesz! Nie możęsz jednocześnei trenowac i walczyc na ulicach!');document.location.href = 'wyscig.php';</script>";
  32. }
  33. elseif($kierowca['czas_p'] > $teraz){
  34. echo"<script type='text/javascript'>window.alert('Pracujesz! Nie możesz w tym czasie się ścigać!');document.location.href = 'wyscig.php';</script>";
  35. }
  36. elseif($kierowca['czas_w'] > $teraz){
  37. echo"<script type='text/javascript'>window.alert('Bierzesz udział w wyścigu! Nie możesz się teraz ścigać!');document.location.href = 'wyscig.php';</script>";
  38. }
  39. /**elseif($kierowca['bak'] < $trasa['zabiera_bajury']){
  40. echo"<script type='text/javascript'>window.alert('Nie masz paliwa aby móć się ścigać');document.location.href = 'stacja_paliw.php';</script>";
  41. }**/
  42. elseif($kierowca['zmeczenie'] >= 100.00){
  43. echo"<script type='text/javascript'>window.alert('Jesteś padnięty odpocznij');document.location.href = 'wyscig.php';</script>";
  44. }
  45. elseif($wygrana > $trasa['win'] ){
  46. mysql_query("UPDATE users SET kasa=kasa+ '250', respekt=respekt+ '11', zmeczenie=zmeczenie+ '1', czas_w='".$cas."' WHERE id='$id_g' ");
  47. echo"<script type='text/javascript'>window.alert('Wygrałeś<br> '".$trasa['wygrana_kasa']."' <br>'".$trasa['wygrany_respekt']."'');document.location.href = 'wyscig.php';</script>";
  48. }
  49. else{
  50. mysql_query("UPDATE users SET kasa=kasa- '100', respekt=respekt- '5', zmeczenie=zmeczenie+ '1', czas_w='".$cas."' WHERE id='$id_g' ");
  51. echo"<script type='text/javascript'>window.alert('Przegrałeś');document.location.href = 'wyscig.php';</script>";
  52. }
  53.  
  54. }
  55. ?>
  56. <?
  57. include('includes/dol.php');
  58. ?>

Mianowicie. $countSec nie pokazuje mi czasu, nie odlicza. Jakieś pomysły??
Go to the top of the page
+Quote Post
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


  1. $countMin = floor($diffTime/60);
  2. $countSec = ($diffTime-($countMin*60));
Go to the top of the page
+Quote Post
Waloch016
post
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 2.10.2010
Skąd: Irlandia

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


Przeoczenie moje. To nie zmienia faktu niedziałania tego.
Go to the top of the page
+Quote Post
rad11
post
Post #4





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Proponuje uzywac <?php

  1. <div id="wyscig1"><?php echo"".$countSec.""?></div>


Zmien i powiedz czy cos sie poprawilo. Dodatkowo wydaje mi sie ze $countSec deklarujesz pozniej moze poprostu ta zmienna nie jest zadeklarowana.

Ten post edytował rad11 24.04.2015, 17:34:33
Go to the top of the page
+Quote Post
Waloch016
post
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 2.10.2010
Skąd: Irlandia

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


nic a nic.
Go to the top of the page
+Quote Post
rad11
post
Post #6





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


ok to teraz przed wywolaniem zrob:

  1. <?php var_dump($countSec);exit; ?><div id="wyscig1"><? echo"".$countSec.""?></div>


i powiedz wynik.
Go to the top of the page
+Quote Post
Waloch016
post
Post #7





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 2.10.2010
Skąd: Irlandia

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


float(0 dla Sec
i float(3 dla Min

Ten post edytował Waloch016 24.04.2015, 17:41:07
Go to the top of the page
+Quote Post
rad11
post
Post #8





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


a jak tak zrobisz
  1. <?php echo $countSec; ?>
Go to the top of the page
+Quote Post
Waloch016
post
Post #9





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 2.10.2010
Skąd: Irlandia

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


Dałem tak:

  1. <?include('includes/gora.php');
  2. $teraz = mktime();
  3. $czas_w = $teraz + 180;
  4. $diffTime = ($czas_w-$teraz); // Difference in time
  5. $countMin = floor($diffTime/60);
  6. $countSec = ($diffTime-($countMin*60));
  7. if(!($_GET['scig'])){
  8. ?>
  9. <div style="width:100%; margin-top: 200px;">
  10.  
  11. <div id="wyscig"><br /><br /><br /><br /><br />Poziom 1<br /><a href='wyscig.php?scig=dalej&id=1'><img src="../images/przycisk.png" width="150" height="50" ></a></div>
  12. <div id="wyscig1"><?php echo "".$countMin."" ?><? echo"".$countSec.""?></div>
  13. <div id="wyscig"><img src="../images/trasa.png" width="200" height="200"></div>
  14. </div>


Generalnie pokazuje mi. 3 min i 0 sek. To jest ok tyle że odliczanie nie działa . nawe przy odświeżaniu ustawiło sie jakby na stałę.

moze inaczej: Potrzebuje cos takiego.

Mam przycisk ktory statruje wyscig. jednosczesnie uaktualnia on czas_w w bazie. to sie dzieje bo klikajac od razu drugi raz wyskakuje mi komunikat ze biore udzial w wyscigu czyli tak jak chce.

Teraz w tym omencie potrzebuje

pobrac ten czas z bazy danych dodac do niego 180 sekund i wyswietlic odliczanie tych 3 minut obok przycisku zeby gracz nie musial na oko klikac czy juz moze sie dalej scigac. masz moze jakis inny sposob zapisu tego?? moj sposob to jedyne co mi do glowy wpada.

Ten post edytował Waloch016 24.04.2015, 17:43:34
Go to the top of the page
+Quote Post
rad11
post
Post #10





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Zrob sobie tak:

  1. $data = strtotime(tutaj zwrocona godzina z bazy danych w formacie np: 19:20:00);
  2. $teraz = time();
  3. $do_przodu = strtotime('+5 seconds', $data); // tutaj masz 19:20:05 czyli counter ustawiony na 5 sekund ty sobie ustaw na +3 minutes
  4.  
  5. //tutaj jest aktualny czas / aktualny czas do przodu
  6. echo date('H:i:s', $teraz) . '/' . date('H:i:s',$do_przodu);
  7.  
  8. if($teraz >= $do_przodu){
  9. //czas sie skonczyl
  10. }else{
  11. //czas sie nie skonczyl
  12. }


Ten post edytował rad11 24.04.2015, 18:36:12
Go to the top of the page
+Quote Post
Waloch016
post
Post #11





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 2.10.2010
Skąd: Irlandia

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


Dziękuję wam za odpowiedzi. Natomiast twój sposób nie bardzo mi pasował. Zrobiłem po swojemu a wygląda tak:

  1. <div id="wyscig1" style="width:28%;"><?php
  2. $teraz = mktime();
  3. $kierowca = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id='$id_g' "))or die(mysql_error());
  4. $czas = $kierowca['czas_w'];
  5. $pozostalo = $czas - $teraz;
  6. //dodajemy funkcję liczącą czas
  7. ?>
  8. <script type='text/javascript'>
  9. function liczCzas(ile) {
  10. godzin = Math.floor(ile / 3600);
  11. minut = Math.floor((ile - godzin * 3600) / 60);
  12. sekund = ile - minut * 60 - godzin * 3600;
  13. if (godzin < 10){ godzin = "0"+ godzin; }
  14. if (minut < 10){ minut = "0" + minut; }
  15. if (sekund < 10){ sekund = "0" + sekund; }
  16. if (ile > 0) {
  17. ile--;
  18. document.getElementById("zegar").innerHTML = godzin + ':' + minut + ':' + sekund;
  19. setTimeout("liczCzas("+ile+")", 1000);
  20. } else {
  21. document.getElementById("zegar").innerHTML = "zakonczono";
  22. }
  23. }
  24. </script>
  25. następny wyscig za <font color="#bf8d1f"><span id='zegar'></span> <?php echo "<script type='text/javascript'>liczCzas(".$pozostalo.")</script>"; ?></font>
  26. </div>
  27. <div id="wyscig"><img src="../images/trasa.png" width="200" height="200"></div>
  28. </div>


Dzięki za pomysł tak czy inaczej.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 01:14