Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne] logiczny problem z if-em
Forum PHP.pl > Forum > Przedszkole
emajl22
mam formularz zamawiania usługi i mam zrobić:

DATA ZLECENIA WYKONANIA USŁUGI NIE MOŻE BYĆ RÓWNA DATA ZŁOŻENIA + 2 DNI
CZYLI JAK DZISIAJ MAMY 10.07.2007 NIE MOŻNA WYBRAĆ Z DATĄ 12.07.2007

i chyba za długo siedze przy komputerze bo nie wiem jak to logicznie napisac nerdsmiley.png

zrobiłem tak:
  1. $data_dzisiejsza = date('d');
  2. // $datawykonania wyglada tak: 3.03.2003
  3. $data_wykonania = explode('.', $datawykonania);
  4.  
  5. $data_zlozenia = $data_dzisiejsza+2;
  6. echo 'Dzień dzisiejszy: ' . $data_dzisiejsza, '<br />';
  7. echo 'Data wykonania: ' . $data_wykonania[0], '<br />';
  8. // TO DAJE ECHO POWYZEJ
  9. //Dzień dzisiejszy: 22
  10. //Data wykonania: 23
  11. if ($data_wykonania[0] == $data_zlozenia) {
  12. echo 'ŹLE';
  13. }


i wpisuje w formularzu w polu dzień np. 23 i nie wyskakuje błąd.. co robię źle?
jacusek
Przecież data wykonania to 23 a data złozenia 22.
A w warunmku piszesz, że jeżeli się równają to jest źle.
A przecież w tym przyapdku o którym piszesz wartości nie są równe.
Tak mi się przynajmniej wydaje
emajl22
to jak to zapisac?
widze ze nie tylko ja mam z tym problem ;d

aktualnie wyglada to tak:
  1. $data_dzisiejsza = date('d');
  2. // $datawykonania wyglada tak: 3.03.2003
  3. $data_wykonania = explode('.', $datawykonania);
  4.  
  5. $data_2dni = $data_dzisiejsza+2;
  6. echo 'Dzień za 2 dni: ' . $data_2dni, '<br />';
  7. echo 'Data wykonania: ' . $data_wykonania[0], '<br />';
  8. // TO DAJE ECHO POWYZEJ
  9. //Dzień za 2 dni: 24
  10. //Data wykonania: 25
  11.  
  12. if ($data_wykonania[0] == $data_2dni) {
  13. echo 'ŹLE';
  14. }
jacusek
przede wszystkim powinieneś zacząć od tego, zeby datę traktować w całości jako datę, a nie tylko dzień. Wyobraź sobie sytuację z końca miesiąca. Od razu będziesz miał problem.

tutioral ewentualnie tutaj
http://phpkurs.pl/przetwarzanie-daty/


polecam również funkcję strtotime()
emajl22
wiem o tym... ale nie o to tu chodzi
thek
Jak nie o to? strtotime to najprostsze rozwiązanie Twojego problemu!
  1. $datazlozenia = strtotime('23.03.2011');
  2. $kiedy_nie = strtotime( '+2 days', $datazlozenia );

I dalej sobie kombinuj sam.
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.