Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak sprawdzić czy data jest mniejsza od drugiej
Morale
post
Post #1





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


Jak sprawdzić czy 10.2 jest mniejszy od 3.10 (ten sam rok) ?


--------------------
Jeśli pomogłem to kliknij Pomógł.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Szupien
post
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 24.11.2007

Ostrzeżenie: (30%)
XX---


nie wiem o co ci chodzi. ale mozesz ifem to zrobic
Go to the top of the page
+Quote Post
Hazel
post
Post #3





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


  1. <?php
  2. $data1 = date('U', mktime(0,0,0,12,3,2007));
  3. $data2 = date('U', mktime(0,0,0,2,10,2007));
  4. $roznica = date('d.m.y', $data1 - $data2);
  5. if ($roznica > 0)
  6. {
  7. // $data1 jest starsza
  8. }
  9. else 
  10. {
  11. // $data2 jest starsza
  12. }
  13. ?>


Ten post edytował Hazel 1.01.2008, 13:37:56


--------------------
Go to the top of the page
+Quote Post
Morale
post
Post #4





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


nie działa ten kod, zawsze pisze to samo:

  1. <?php
  2. $kiedy = "4.3";
  3.  
  4.  
  5. $data1 = explode(".", date("j.n"));
  6. $data2 = explode(".", $kiedy);
  7.  
  8. $aktualny_rok = date("Y");
  9.  
  10. $data1_check = date("U", mktime(0,0,0,$data1[1],$data1[0],$aktualny_rok));
  11. $data2_check = date("U", mktime(0,0,0,$data2[1],$data2[0],$aktualny_rok));
  12. $roznica = date("j.n", $data1_check - $data2_check);
  13. if ($roznica > 0)
  14. {
  15. $jaki_rok = $aktualny_rok+1;
  16.  
  17. }
  18. else 
  19. {
  20. $jaki_rok = $aktualny_rok;
  21.  
  22. }
  23. ?>


Zawsze wyświetla mi rok 2009. Czy podaje 1.1 czy podaje 4.3.


--------------------
Jeśli pomogłem to kliknij Pomógł.
Go to the top of the page
+Quote Post
Hazel
post
Post #5





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


No bo dziś jest 1 stycznia, więc żadna data nie będzie starsza...
Poza tym robisz pewien błąd:
  1. <?php
  2.  
  3. $roznica = date("j.n", $data1_check - $data2_check);
  4. ?>

Po czym sprawdzasz, czy $roznica jest większa od zera - tak będzie zawsze, lub funkcja date() zwróci wyjątek (ona nie operuje na liczbach ujemnych pod różnymi wersjami PHP). Jesli chcesz uzyskać poprawny efekt, to:
  1. <?php
  2. $roznica = $data1_check - $data2_check;
  3. ?>

I dopiero teraz sprawdzasz. A jak zamiast 1 stycznia 2008 wpiszesz coś innego, to działa poprawnie.


--------------------
Go to the top of the page
+Quote Post
Morale
post
Post #6





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


też myślałem o tym pierwszym stycznia, ale zobaczyłem, że jest znak > a nie >= więc powinno pokazać co innego przy 1.1 a co innego przy 2.1 i jak usunąłem to
  1. <?php
  2. date("j.n",...
  3. ?>
to zadziałało...

dzięki, działa


--------------------
Jeśli pomogłem to kliknij Pomógł.
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 Aktualny czas: 22.08.2025 - 06:09