// supondo que a data seja 20/09/2006 $data = '20/09/2006'; usando expressão regular convertemos para 2006/09/20 $data = preg_replace("@(\d+)(\D\d+\D)(\d+)@","\\3\\2\\1",$data); Fácil né? Se quiser validar a data pode-se fazer desta forma // Aceita datas no formato 01/01/2006 ou 1/1/06 com qualquer separador. // Pode-se inclusive usar 01A01A2006 ou mesmo 01012006 se quiser (PS : O dia pode até ter apenas um digito mas o mes nao se não usar separador) :D function validaData($data){ if ( preg_match("@(\d{1,2})\D?(\d{1,2})\D?(\d{2,4})@",$data,$matches) ){ list(,$dia,$mes,$ano) = $matches; // começa com virgula mesmo if (checkdate($mes,$dia,$ano)) // a data é valida e podemos inserir return array("dia"=>$dia,"mes"=>$mes,"ano"=>$ano,"dataMySQL"=>"{$ano}/{$mes}/{$dia}"); // retronando um vetor com dia,mes,ano e data completa no formato aceito pelo MySQL. return false; // "Data inválida!"; // } } // Testando (nao esquecer de incluir a função acima // coloque este script em um documento PHP e chame com arquivo.php?data=20-09-2006 ------------------ Corte Aqui------------------------------------- Data enviada para conversao = > $data"; $data2 = preg_replace("@(\d{1,2})(\D?\d{1,2}\D?)(\d{2,4})@","\\3\\2\\1",$data); echo "

Data convertida = > $data2

"; if ($valores = validaData($data) ){ echo "

A data passada é valida

";
	  print_r($valores);
	  echo "
"; } else echo "

Data Inválida

"; } die("

Nada Foi Passado!

"); ?> ------------------ Corte Aqui-------------------------------------