webForumDet fria alternativet

Blir galen på checkdate()

5 svar · 263 visningar · startad av Peeer

PeeerMedlem sedan mars 20025 907 inlägg
#1
echo checkdate("1c","1a2","2003");

Returnerar 1, dvs true. Inte sjutton är 2003-1c-1a2 ett godkännt datum? Har jag missat något, eller är det bara en bugg att den släpper igenom sådana datum?

K@llenMedlem sedan mars 20032 667 inlägg
#2
bool checkdate ( int month, int day, int year)

Den förväntar sig att få numeriska tal som argument och inte strängar. Kan kanske bero på det?

PeeerMedlem sedan mars 20025 907 inlägg
#3

Mjo, men då borde den väl ge felmeddelande eller returnera false? Att den returnerar true är hyfsat frustrerande. :/

dectgapMedlem sedan sep. 20021 655 inlägg
#4
echo checkdate("1c","1a2","2003");

läses som

echo checkdate(1,1,2003);

Använd is_numeric på argumenten först, om du inte vill att ditt exempel ska gå igenom.

PeeerMedlem sedan mars 20025 907 inlägg
#5

Men usch, trodde jag skulle slippa det.
jaja, Tack iaf :)

K@llenMedlem sedan mars 20032 667 inlägg
#6

Enligt användarkommentarerna på php.net är inte heller is_numeric() riktigt att lita på. Så du får nog köra ett reguljärt uttryck istället för att kolla så argumenten verkligen är numeriska.

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)