Convertir una fecha introducida por el usuario a formato SQL

Icono de una fecha en un calendario

El usuario puede introducir un campo de fecha de un formulario web de muchas formas distintas. La siguiente función PHP convierte la fecha introducida de cualquier manera al formato de fecha de MySQL

Código de la función PHP

  function fechaSQL($texto) { // "d/m/a" --> "aaaa-mm-dd"
$delimitadores = str_split(' -_/\\.');
$lista = explode('-',str_replace($delimitadores,'-',trim($texto)));
if (count($lista)>=3) {
$ano = '19'.$lista[2]; $ano = substr($ano,strlen($ano)-4);
$mes = '00'.$lista[1]; $mes = substr($mes,strlen($mes)-2);
$dia = '00'.$lista[0]; $dia = substr($dia,strlen($dia)-2);
return "$ano-$mes-$dia";
}
return $texto;
}

Ejemplos de uso

  header('Content-type: text/plain');
echo fechaSQL('1/5/73')."\n";
echo fechaSQL('01.05.73')."\n";
echo fechaSQL(' 1 5 73 ')."\n";
echo fechaSQL(' 1-5 73 ')."\n";
echo fechaSQL(' 01-5 73 ')."\n";
echo fechaSQL('1.5.73. ')."\n";
echo fechaSQL('1-5/73. ')."\n";

En todos los casos el resultado es: "1973-05-01"

Comentarios

  1. 1 haydee 2013-05-15 Hace 4 años
    Me gusta mucho su pagina ya que es sencilla, atractiva y organizada. Los diferentes temas discutidos son de mi preferencia.
Proinf.net, ©2003-2017 ci 3.1.5 (CC) Esta obra está bajo una licencia de Creative Commons Este software está sujeto a la CC-GNU GPL