Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]OnLine-OffLine od do godziny.
Forum PHP.pl > Forum > Przedszkole
Mike122
Witam w bazie mam wpisane że np. bot pracuje od 06-12 (czyli od 6 do 12) albo 07-23 itd.

Jak zrobić aby pokazywało czy bot aktualnie pracuje np. jeśli jest według serwera godzina 10 a bot pracuje między 6 a 12 to znaczy że wartość operatora if będzie true.
Napisałem
  1. <?php
  2. $start = 06;
  3. $end = 14;
  4. $h = date("H");
  5. if(($h >= $start) && ($end <= $h)){
  6. echo "Bot OnLine";
  7. }else{
  8. echo "Bot OffLine";
  9. }
  10. ?>

By było dobrze ale jeśli bot indexuje od 23 do 03...
Proszę o pomoc lub nakierowanie jak to zrobić żeby działało poprawnie.
Pozdrawiam
Sokal
  1. <?php
  2. $start = 23;
  3. $end = 3;
  4.  
  5. $month = date("n");
  6. $day = date("d");
  7. $year = date("Y");
  8.  
  9. $from = mktime($start, 0, 0, $month, $day, $year);
  10. $to = mktime($end, 0, 0, $month, $day, $year);
  11. $now = time(); 
  12.  
  13. if(($from <= $now) && ($to >= $now))
  14. {
  15. echo "Bot OnLine";
  16. }
  17. else
  18. {
  19. echo "Bot OffLine";
  20. }
  21. ?>
Kicok
Po mojemu to będzie tak:

  1. <?php
  2.  
  3.  
  4. $start = '23';
  5. $end = '03';
  6. // - - - - - - - - - -
  7.  
  8.  
  9. // Obcinamy początkowe zera, żeby skrypt nie uznawał tego za liczby w systemie
  10. // ósemkowym i konwertujemy na int
  11. $start = intval( ltrim( $start, '0' ) );
  12. $end = intval( ltrim( $end, '0' ) );
  13.  
  14. // Pobieramy aktualną godzinę (użyj gmdate() lub date() w zależności od tego, czy
  15. // godziny zapisane w bazie są w GMT czy w lokalnej strefie czasowej)
  16. $hour = gmdate( 'H' );
  17.  
  18.  
  19. // Jeśli $start jest mniejsze lub równe $end, to sprawdź czy: $start <= $hour <= $end
  20. if( $start <= $end )
  21. {
  22. if( ( $start <= $hour ) && ( $hour <= $end ) ) {
  23. echo 'Bot Online';
  24. }
  25. else {
  26. echo 'Bot Offline';
  27. }
  28. }
  29. // Jeśli $start jest większe niż $end, to sprawdź czy: $start <= $hour
  30. // lub czy: $hour <= $end
  31. else
  32. {
  33. if( ( $start <= $hour ) || ( $hour <= $end ) ) {
  34. echo 'Bot Online';
  35. }
  36. else {
  37. echo 'Bot Offline';
  38. }
  39. }
  40.  
  41.  
  42. ?>
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.