Scripts
Datum converteren en valideren
Controleer of de input een geldige datum is en converteert de naar het formaat zoals het date_format patroon. De input opties zijn eu formaat dag/maand/jaar , us formaat maand/dag/jaar of pc formaat jaar/maand/dag. De output is een patroon volgens de date_format functie. De output heeft het -teken als scheidings teken.
datumconversiefunctie.php
<?php
// beveilig input van een formulier
// $werkdatum = strip_tags($_POST['werkdatum']);
// test met verschillende datums
echo "test en converteer : ";
echo $werkdatum = "01-02.2016";
echo "<br> naar : ";
if ( DatumConverteren($werkdatum,'eu') ){
// dit is een geldige dag/maand/jaar (eu) datum
echo DatumConverteren($werkdatum,'eu','d-m-Y');
} else {
echo "valse datum";
}
function DatumConverteren($datum,$ori='eu',$patroon='Y-m-d'){
// converteert en valideert datums
// input datum kan -/. scheidings tekens bevatten
// input datum kan in m-d-y (us) Y-m-d (pc) d-m-y (eu)default formaat
// output datum heeft - scheidings teken
// output kan in patronen volgens date_format php functie
switch ($ori){
case "us":
// maand dag jaar bron
if (preg_match('/^(\d{1,2})[-\/.](\d{1,2})[-\/.](\d{2,4})$/', $datum, $matches)) {
$year = $matches[3];
$month = $matches[2];
$day = $matches[1];
if (checkdate($month,$day,$year)){
return date_format(date_create($year.'-'.$month.'-'.$day),$patroon);
} else {
return false;
}
}
break;
case "pc":
// jaar maand dag
if (preg_match('/^(\d{2,4})[-\/.](\d{1,2})[-\/.](\d{1,2})$/', $datum, $matches)) {
$year = $matches[1];
$month = $matches[2];
$day = $matches[3];
if (checkdate($month,$day,$year)){
return date_format(date_create($year.'-'.$month.'-'.$day),$patroon);
} else {
return false;
}
}
break;
default:
// dag maand jaar
if (preg_match('/^(\d{1,2})[-\/.](\d{1,2})[-\/.](\d{2,4})$/', $datum, $matches)) {
$year = $matches[3];
$month = $matches[2];
$day = $matches[1];
if (checkdate($month,$day,$year)){
return date_format(date_create($year.'-'.$month.'-'.$day),$patroon);
} else {
return false;
}
}
}
}
?>
Reacties
0