Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne] logiczny problem z if-em
emajl22
post 22.07.2011, 12:02:34
Post #1





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


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?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
jacusek
post 22.07.2011, 12:07:47
Post #2





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
emajl22
post 22.07.2011, 12:11:20
Post #3





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


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. }


Ten post edytował emajl22 22.07.2011, 12:16:10


--------------------
Go to the top of the page
+Quote Post
jacusek
post 22.07.2011, 12:23:04
Post #4





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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()

Ten post edytował jacusek 22.07.2011, 12:24:18
Go to the top of the page
+Quote Post
emajl22
post 22.07.2011, 12:26:27
Post #5





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


wiem o tym... ale nie o to tu chodzi


--------------------
Go to the top of the page
+Quote Post
thek
post 22.07.2011, 12:34:34
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 16:23