Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> poprawnosc daty w formacie YYYY-MM-DD, Problem z checkdate()
dobryvinyl.com
post
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


Witam, mam problem ze sprawdzeniem daty w formacie YYYY-MM-DD. Moj kod wyglada nastepujaco

  1. <?php
  2. if(!checkdate(substr($data_urodzenia, 5, 2), substr($data_urodzenia, 8, 2), substr($data_urodzenia, 0, 4)) AND strlen($data_urodzenia) != 10){
  3.   errormsg("Data nie jest poprawna! Prawidłowy format to: YYYY-MM-DD");
  4. }
  5. ?>


Wystarczy jednak wpisac bledna date np 200hjd-32-32 zby pojawil sie komunikat :

Cytat
Warning: checkdate() expects parameter 3 to be long, string given in /hsphere/local/home/hotmag/hotmag.pl/inc/logowanie/new.user.php on line 165


Jezeli mozecie cos zaradzic prosil bym.

Ten post edytował dobryvinyl.com 14.10.2005, 07:32:07


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
aleksander
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


rzutowanie do integer
  1. <?php
  2. $zmienna = 'abc123';
  3.  
  4. $iZmienna = (int)$zmienna;
  5.  
  6. $iZmienna = inval( $zmienna );
  7. ?>
zmienne $iZmienna sa w tym momencie integerami i maja wyciete 'abc'.
pozdr
Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #3





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


a czy moge prosic o ten przyklad bardziej rozwiniety w praktyce jezeli chodzi o date?


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
stefan_precz
post
Post #4





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 2.01.2005

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


w twoim przypadku date przenosisz w zmiennej
$data_urodzenia więc


  1. <?php
  2.  
  3.  
  4. $iZmienna = (int)$data_urodzenia;
  5.  
  6. $iZmienna = inval( $data_urodzenia );
  7.  
  8. ?>


i teraz $iZmienna jest wyczyszczona z tekstu zostaje sama data wiec nie wywali ci błedu


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie inval a intval
poza tym stefan_precz jak zastosujesz swoja logike na dacie 2005-10-15 to otrzmasz tylko rok 2005, gdyz kreski to tez tekst.

@dobry
Tu masz link do podobnego problemu. jest tam to co cie interesuje (począwszy od 4-tego posta smile.gif ):
http://forum.php.pl/index.php?showtopic=35671&hl=checkdate


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #6





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


dziekuje bardzo za pomoc.


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
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 - 05:36