webForumDet fria alternativet

Född den

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

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#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?

nicclasMedlem 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

Jörgen HPMedlem 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. :(

nicclasMedlem 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

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#5

Klockrent nicclas, bugar och tackar! :D

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