Hur kan jag kontrollera att användaren fyllt i ett korrekt datum?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2008

Hur kan jag kontrollera att användaren fyllt i ett korrekt datum?

Jag har ett problem. Jag vill undersöka om användaren har skrivit in ett datum i rätt format på min hemsida. Datumet skall vara i 0000-00-00 format. Skriver man in något annat så kommer inte MySQL databasen inte att lagra datumet. Jag har försökt med att köra någon typ av preg_match men förstår inte riktigt hur jag ska göra.

if(isset($_POST['date']) && __________) //Här bör kontrollen ske { $date = $_POST['date']; } else { $date = 0; $error = true; }

Hur kan jag kontrollera att användaren fyllt i ett korrekt datum? (0000-00-00)

Tack på förhand för svar!

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007

if(isset($_POST['date']) && preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/', $_POST['date') == 1)

Om du nu ska använda preg_match... den kommer ju släppa igenom nonsensdatum som 0000-00-00 och 9999-99-99. En bättre metod är att låta strptime försöka läsa datumet:

if(isset($_POST['date']) && strptime($_POST['date'], '%Y-%m-%d') !== false)

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2008

Tack, funkar utmärkt!