Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie czy minął określony czas w UNIX
Forum PHP.pl > Forum > PHP
Vertisan
Witam!

Potrzebuję sprawdzić, czy pomiędzy określonymi czasami podanymi w UNIX, minął określony czas, czyli:

if ( ($CzasUnix1 - $CzasUnix2) >= 12godzin ) ...

Mam obecnie coś takiego (jeden z czasów jest pobierany z bazy)

  1. foreach ($ServiceTime as $key) {
  2. if ( abs( time() - $key->czas_unix ) >= 12*3600 ) {
  3. echo 'Czas minął przynajmniej 1 raz';
  4. }
  5. }


tylko że cały czas zwraca TRUE, ktoś wie czemu?
kartin
Są dwie możliwości:
  1. zawsze jest co najmniej 12 godzin różnicy
  2. w $key->czas_unix nie masz prawidłowego czasu np. masz jakiś nieliczbowy ciąg znaków


Wyświetl porównywane wartości a dowiesz się w czym jest problem:
  1. foreach ($ServiceTime as $key) {
  2. var_dump(time(), $key->czas_unix);
  3. if (abs(time() - $key->czas_unix) >= 12 * 3600) {
  4. echo 'Czas minął przynajmniej 1 raz';
  5. }
  6. }
Vertisan
Cytat(kartin @ 6.08.2015, 20:45:30 ) *
Są dwie możliwości:
  1. zawsze jest co najmniej 12 godzin różnicy
  2. w $key->czas_unix nie masz prawidłowego czasu np. masz jakiś nieliczbowy ciąg znaków


Wyświetl porównywane wartości a dowiesz się w czym jest problem:
  1. foreach ($ServiceTime as $key) {
  2. var_dump(time(), $key->czas_unix);
  3. if (abs(time() - $key->czas_unix) >= 12 * 3600) {
  4. echo 'Czas minął przynajmniej 1 raz';
  5. }
  6. }


Nie zawsze jest conajmniej 12h różnicy
w bazie kolumna jest typu INT, a wartość jest generowana przez funkcję time()
kartin
To, że w bazie jest nie znaczy, że ją odczytujesz.
Podaj kilka par które zwraca var_dump(time(), $key->czas_unix);
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.