Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Porównywanie dwóch dat.
Forum PHP.pl > Forum > Przedszkole
cfneon
Witam mam problem, potrzebuję porównać dwie daty. Jedną którą sam wpisze w kodzie, a drugą która pobiera aktualną date jęzeli daty sie zgadzają wypisuje komentarz.

Próbowałem stworzyć coś takiego ale wyskakuje błąd. Php mało co ogarniam więc na 100% jest coś źle. ;c

  1. <?php
  2. $godzina_wpisu = date ("0:29:33")
  3. $obecna_godzina = date("H:i:s"); // pobieranie aktualnej daty
  4. if($godzina_wpisu===$obecna_godzina)
  5. echo "Daty są takie same!";
  6. ?>


Z góry dziękóweczka za pomoc wink.gif)

PS.

Próbowałem jeszcze tak ale też nic.

  1. <?php
  2. $date = new DateTime('2014-01-31 14:45:00');
  3. echo $date->format("d-m-Y H:i");
  4. $obecna_godzina = date("d-m-Y H:i"); // pobieranie aktualnej daty
  5. echo $obecna_godzina
  6. if var_dump($date == $obecna_godzina);
  7. echo "trybi";
  8. else
  9. echo "nie trybi";
  10. ?>
sybii
A co to za błąd?

PS.
W pierwszym przykładzie chyba brakuje Ci czekoś na końcu w drugiej linii biggrin.gif
_Borys_
W pierwszym przykładzie porównujesz stringi a więc lipa, musisz przetworzyć do czasu uniksowego.
  1. $now = time();
  2. $date = strtotime('0:29:33');
  3. var_dump($date == $now);
  4. var_dump($date < $now);
  5. var_dump($date > $now);

  1. $now = new DateTime('now');
  2. $date = new DateTime('0:29:33');
  3. var_dump($date == $now);
  4. var_dump($date < $now);
  5. var_dump($date > $now);

DateTime::diff
cfneon
Dziękuję za pomoc _Borys_ kod działa z tym że wyświetla bool(false) itp. a chciałem żeby wypisywał konkretny tekst. Próbawałem wpakować to w ifa ale znowu jakiś błąd. ;/

  1. <?php
  2. $now = new DateTime('now');
  3. $date = new DateTime('14:55:33');
  4. if (var_dump($date == $now))
  5. echo "1";
  6. elseif (var_dump($date < $now))
  7. echo "2";
  8. elseif (var_dump($date > $now))
  9. echo "3";
  10. ?>


Ps. Poprawiłem błąd na stronie już się nie wyświetla zapomniałem o ";" po echo, ale niestety nie wyświetla mi komentarz tylko dalej bool(false) itp.

Rozumiem że gdy wpakuje kod w pętle i już będzie działał prawidłowo. Mój tekst będzie wyświetlany codziennie o tej godzinie, a jeżeli zapętle
  1. var_dump($date < $now)
tekst z np. z wczoraj będzie zostawał już na stronie!?
_Borys_
var_dump() było tylko do sprawdzenia czy zwraca prawdę czy fałsz, normalne if() zastosuj
  1. if ($date == $now) echo "1";
cfneon
Kurdde wielkie dzięki, już próbowałem nawet kombinować z nadaniem zmiennej kazdej lini var_dump a w ifie sprawdzenie zmiennej poprawności ale jak wszystko zakończyło się fiaskiem ;p
Więc działa mam jeszcze do ciebie trzy pytania,
Jak się pozbyć wyświetlania tych bool(false), bool(true) na stronie?
I czy w jednym var_dump da się sprawdzić poprawność dwóch działań np. $date < $now, $date == $now? A pytam o to drugie dlatego gdyż chciałem wprowdzić coś typu jeżeli warunek jest spełniony losowo wybiera dany tekst, a nie chce żeby przy
  1. $date == $now
wylosował np. echo "3" a przy
  1. $date < $now
wylosował echo "4"
Jeszcze z tym losowaniem mam pytanie bo domyślam się że za każdym odświeżeniem strony losuje poprostu dany tekst, a chciałbym żeby losował go na dzień i tak zostawał.

Nie wymagam od ciebie kodu bo podejrzewam że to już trochę wiecej robótki ;] Ale jakbyś pokierował chociaż w którą stronę iść jakimi funkcjami się zainteresować, wydaję mi się że na pętli switch byłoby to najlepiej zrobić.
Czekam na odpowiedź, pozdrawiam wink.gif)
nospor
Cytat
Jak się pozbyć wyświetlania tych bool(false), bool(true) na stronie?
Poprostu wywal te var_dump..... var_dump sluzy do wyswietlania zawartosci. nie chcesz wyswietlac, to nie wyswietlaj...

Cytat
I czy w jednym var_dump da się sprawdzić poprawność dwóch działań np. $date < $now, $date == $now?
Jak wyzej... var_dump sluzy do wyswietlania. Chcesz cos sprawdzic, i od tego cos warunkowac, to uzywasz IF. Zapoznaj sie wkoncu z podstawami i funkcjami ktore uzywasz.
_Borys_
Skąd bierzesz tekst do losowania, z pliku ? bazy ?
Jeśli chcesz ustawić tekst na dzień to dla niezidentyfikowanych użytkowników ustawiasz cookie w przeglądarce,
dla zidentyfikowanych cookie albo przechowujesz dane w bazie o czasie wyświetlenia tekstu.
cfneon
oke dzieki, Do zamkniecia. wink.gif
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.