// 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------------------------------------- <?php $data = (isset($_GET['data'])?$_GET['data']:false); if ($data){ echo "<h3>Data enviada para conversao = > $data</h3>"; $data2 = preg_replace("@(\d{1,2})(\D?\d{1,2}\D?)(\d{2,4})@","\\3\\2\\1",$data); echo "<h3>Data convertida = > $data2</h3>"; if ($valores = validaData($data) ){ echo "<h3>A data passada � valida</h3><pre>"; print_r($valores); echo "</pre>"; } else echo "<h2>Data Inv�lida</h2>"; } die("<h3>Nada Foi Passado!</h3>"); ?> ------------------ Corte Aqui-------------------------------------