---
title: "Född den"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/50965-född-den"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Jörgen HP"
published: "2002-08-21T20:08:56.000Z"
updated: "2002-08-21T21:47:02.000Z"
replies: 4
views: 257
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/50965-född-den"
---

# Född den

## #1 — Jörgen HP, 2002-08-21T20:08Z

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?

Permalänk: https://www.webforum.nu/p/50965

## #2 — nicclas, 2002-08-21T20:58Z

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>

Permalänk: https://www.webforum.nu/p/760635

## #3 — Jörgen HP, 2002-08-21T21:27Z

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

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

```php

<?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. :(

Permalänk: https://www.webforum.nu/p/760640

## #4 — nicclas, 2002-08-21T21:43Z

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>

Permalänk: https://www.webforum.nu/p/760645

## #5 — Jörgen HP, 2002-08-21T21:47Z

Klockrent nicclas, bugar och tackar! :D

Permalänk: https://www.webforum.nu/p/760647

---

Tråden på webben: https://www.webforum.nu/amne/php/50965-född-den
