Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Timer odliczający czas do wydarzenia
Forum PHP.pl > Forum > Przedszkole
BienuSS
Witam mam cos takiego :
  1. <?php
  2. $data_wydarzenia = '2018-03-27 15:36:29';
  3. $string_czas_do_wydarzenia = timematch ($data_wydarzenia);
  4.  
  5. if ($string_czas_do_wydarzenia=="")
  6. echo 'LIVE<br />';
  7. else
  8. echo $string_czas_do_wydarzenia . ' from now <br />';
  9.  
  10. function timematch($data_wydarzenia) {
  11. $data_aktualna = Date('Y-m-d H:i:s');
  12.  
  13. $liczba_sekund_dla_wydarzenia = StrToTime($data_wydarzenia);
  14. $liczba_sekund_dla_aktualnej_daty = StrToTime($data_aktualna);
  15.  
  16. $liczba_sekund_miedzy_datami = $liczba_sekund_dla_wydarzenia -
  17. $liczba_sekund_dla_aktualnej_daty;
  18. if ($liczba_sekund_miedzy_datami<=0)
  19. return "";
  20.  
  21. $liczba_sekund_w_roku = 365*24*60*60;
  22.  
  23.  
  24. $liczba_sekund_w_miesiacu = 30*24*60*60;
  25. $pozostała_liczba_sekund_miedzy_datami =
  26. $liczba_sekund_miedzy_datami - $liczba_lat*$liczba_sekund_w_roku;
  27.  
  28. $liczba_sekund_w_dniu = 24*60*60;
  29. $pozostała_liczba_sekund_miedzy_datami =
  30. $pozostała_liczba_sekund_miedzy_datami -
  31. $liczba_miesiecy*$liczba_sekund_w_miesiacu;
  32. $liczba_dni =
  33. Floor($pozostała_liczba_sekund_miedzy_datami/$liczba_sekund_w_dniu);
  34. if ($liczba_dni > 0){
  35. $string_liczba_dni = $liczba_dni. " days ";
  36. $string_liczba_godzin ='';
  37. $string_liczba_minut = '';
  38. $string_liczba_sekund ='';}
  39. else
  40. $string_liczba_dni = "";
  41.  
  42. $liczba_sekund_w_godzinie = 60*60;
  43. $pozostała_liczba_sekund_miedzy_datami =
  44. $pozostała_liczba_sekund_miedzy_datami
  45. - $liczba_dni*$liczba_sekund_w_dniu;
  46. $liczba_godzin =
  47. Floor($pozostała_liczba_sekund_miedzy_datami/$liczba_sekund_w_godzinie);
  48. if ($liczba_godzin > 0){
  49. $string_liczba_godzin = $liczba_godzin." hours ";
  50. $string_liczba_minut ='';
  51. $string_liczba_sekund ='';}
  52. else
  53. $string_liczba_godzin = "";
  54.  
  55. $liczba_sekund_w_minucie = 60;
  56. $pozostała_liczba_sekund_miedzy_datami =
  57. $pozostała_liczba_sekund_miedzy_datami -
  58. $liczba_godzin*$liczba_sekund_w_godzinie;
  59. $liczba_minut =
  60. Floor($pozostała_liczba_sekund_miedzy_datami/$liczba_sekund_w_minucie);
  61. if ($liczba_minut > 0){
  62. $string_liczba_minut = $liczba_minut." minutes ";
  63. $string_liczba_sekund ="";}
  64. else
  65. $string_liczba_minut = "";
  66.  
  67. $liczba_sekund = $pozostała_liczba_sekund_miedzy_datami -
  68. $liczba_minut*$liczba_sekund_w_minucie;
  69. $string_liczba_sekund = $liczba_sekund." sec ";
  70. $string_liczba_miesiecy . $string_liczba_dni;
  71. $string_czas_do_wydarzenia .= $string_liczba_godzin .
  72. $string_liczba_minut . $string_liczba_sekund;
  73.  
  74. return $string_czas_do_wydarzenia;
  75. }
  76. ?>

I chce zrobić tak żeby wyswietlały sie tylko albo dni albo minuty albo sekundy,w sensie jak jest 1 albo wiecej dni to tylko dni jak jest 0 dni a kilka godzin to tylko godziny itd.

A druga sprawa to w js blokowanie inputa po upłynięciu czasu, chodzi mi o to żeby czas komputera użytkownika nie miał na to wpływu

nospor
Zanim wyswietlisz godzine, to sprawdzaj czy dni sa = 0
Zanim wyswietlisz minute to sprawdzaj czy dni = 0 oraz godziny =0
itd... Proste IFy.

co do js to:

setTimeout(function(){
//tutaj zrob sobie disabled inputa ktorego chcesz
}, czas);

gdzie czas to liczba milisekund za ile ma sie odpalic kod
BienuSS
UP
Problem jest gdzie indziej bo w foreach'u ogarnąłem jak poprawnie wyswiatlac date do danego diva
ale nie działa mi wtedy ta funkcja, czym to może byc spowodowane ?
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.