webForumDet fria alternativet

Född den

PHP

4 svar · 254 visningar · startad av Jörgen HP

Medlem sedan feb. 20012 412 inlägg
Frågan#1

Hej!

Lite tankestillestånd har uppstått.

En användare ska kunna ange ett födelsedatum på sin hund. Min tanke var att göra tre formulärfält; år, månad, dag.

Det slutliga formatet ska vara 0000-00-00

Sedan kontrollerar jag så att år är 4 siffror, månad och dag 2 siffror. Sedan en kontroll med en switch så att rätt antal dagar passar in på aktuell månad.

Problem uppstår vid skottår.

Min fråga, hur löser man valideringen på smartast sätt?

Medlem sedan feb. 20001 050 inlägg
#2

Denna funktion är lite smart ;) Tyvärr funkar den bara för årtal mellan 1970 och 2038! Hur gammal kan en hund bli?

<?
function verifieraDatum($datum){
  if ($datum==date("Y-m-d",strtotime($datum))) 
    return "ok";
  else
    return "ej ok";
}
echo verifieraDatum("2002-02-28")."\n";
echo verifieraDatum("2002-02-29")."\n";
echo verifieraDatum("2000-02-29")."\n";

?>

/nicclas - https://www.frisim.com

Medlem sedan feb. 20012 412 inlägg
#3

Tack nicclas, den älsta hunden jag känner till blev 17 år.

Jag försökte mig på nedanstående:


<?php
$dog_bday ="1985-10-11";

$born = (isset($dog_bday) && eregi("/^(\d{4})-(\d{2})-(\d{2})$/",$dog_bday));

if (!$born) print ("Fältet 'födelsedatum' är inte rätt ifyllt.<br>");

?>

Men den returnerar false hela tiden. :(

Medlem sedan feb. 20001 050 inlägg
#4

Bara 17 år, schyyst då kan du ju använda min funktion, den funkar ju upp till 32 år gamla (hundar)! Prova så här istället (med preg_match!)

<?
$dog_bday ="1986-02-29";
$born = (isset($dog_bday) && preg_match("/^(\d{4})-(\d{2})-(\d{2})$/",$dog_bday));
if (!$born) 
  echo "fel";
else 
  echo "ok";
?>

(PS [PHP]-taggen suger, den tar fortfarande bort backslash-tecken, skall ingen fixa den snart?)

/nicclas - https://www.frisim.com

Medlem sedan feb. 20012 412 inlägg
#5

Klockrent nicclas, bugar och tackar! :D

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)