Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Czas
Forum PHP.pl > Forum > Przedszkole
henio
Stworzyłem skrypt, który po wywołaniu działa normalnie do czasu kiedy upływa pełna godzina. Np. zaloguje się o 15:48 a o 16:08 wyświetla mi się:
Jesteś zalogowany od -20 minut. Co oczywiście mnie dziwi.
  1. <?php
  2. function od_kiedy_onilne($jednostka_czasu, $j_cz_slownie)
  3. {
  4. $od_kiedy = explode(', ', @$_SESSION['online']);
  5. $od_kiedy1 = explode('-', $od_kiedy['0']);
  6. $od_kiedy2 = explode(':', $od_kiedy['1']);
  7. $data_od_kiedy = mktime(0, $od_kiedy2['1'], $od_kiedy2['0'], $od_kiedy1['1'], $od_kiedy1['0'], $od_kiedy1['2']);
  8. $ostatnio_online = date("Y-m-d, H:i");
  9. $online_teraz = explode(', ', $ostatnio_online);
  10. $online_teraz1 = explode('-', $online_teraz['0']);
  11. $online_teraz2 = explode(':', $online_teraz['1']);
  12. $data_online_teraz = mktime(0, $online_teraz2['1'], $online_teraz2['0'], $online_teraz1['1'], $online_teraz1['0'], $online_teraz1['2']);
  13. $roznica = $data_online_teraz - $data_od_kiedy;
  14. $roznica = floor($roznica / $jednostka_czasu);
  15. echo "Jesteś zalogowany od <b>".$roznica."</b> ".$j_cz_slownie.".";
  16. }
  17. ?>
AxZx
zrob sobie wyswietlanie zmiennych
$data_online_teraz, $data_od_kiedy, $roznica
i zobacz co wyswietlaja.
zastanow sie, przypomnij sobie lekcje matematyki i problem rozwiaze sie sam:)
henio
Zrobilem tak jak mówiles:

$data_online_teraz wyswietla np: 1716934458
$data_od_kiedy wyswietla np: 1716936977
I po odjęciu pierwszej od drugiej wychodzi, że:
$roznica wyswietla np: -2519

Więc jasne jest, że wyświetli liczbę ujemną. Co więcej kiedy poczekałem kilka minut zauważyłem, że różnica się zamiast oddalać się od zera przybliża się do niego.
AxZx
$data_online_teraz => 2024-05-29 00:14:18
$data_od_kiedy => 2024-05-29 00:56:17

wychodzi na to ze generowanie ktorejs daty masz zle zrobione.
a tak wogole to z czym masz problem? z analiza skryptu napisanego przez siebie? ze znalezieniem bledu?
henio
Już poprawiłem, problem był w tym, że w jednym miejscu pomyliłem w funkcji mktime kolejność godzin i minut.
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.