Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
function formataData($data,$separadorEnt,$separadorSai,$tipoEnt,$tipoSai){
/*
* A variável $data é o formato de entrada da data. EX.: dd/mm/aaa,dd-mm-aaaa,dd.mm.aaaa,aaaa-mm-dd,aaaa/mm/dd,...
* A variável $separadorEnt é o tipo de caracter que separa o dia do ano e mes na data de entrada. EX.: "/","-","."
* A variável $separadorSai é o tipo de caracter que separa o dia do ano e mes na data de saida. EX.: "/","-","."
* A variável $tipo é o formato de saida da data se no formato brasileiro ou estadonidense.
/
if(ereg("^[0-9]+$separadorEnt+[0-9]+$separadorEnt+[0-9]",$data))
//separa a data pra verificar dia, mes e ano
$data = explode($separadorEnt,$data);
/*
* verifica o tipo da transformação para date de entrada:
* bra para data no formato dd/mm/aaa, dd-mm-aaaa, dd.mm.aaaa,
* e eua para data no formato aaaa-mm-dd,aaaa/mm/dd
*/
switch($tipoEnt){
case "bra":
//pega o dia
$dia = $data['0'];
//pega o mes
$mes = $data['1'];
//pega o ano
$ano = $data['2'];
break;
//se a data tiver no formato estadonidense
case "eua":
//pega o dia
$dia = $data['2'];
//pega o mes
$mes = $data['1'];
//pega o ano
$ano = $data['0'];
break;
}
//seta a variavel
$situacao="";
//verifica o dia valido para os meses de 30 e 31 dias.
if (($dia < 01 || $dia > 30) && ($mes == 04 || $mes == 06 || $mes == 09 || $mes == 11) || $dia > 31){
$situacao .= "Dia inválido!";
}else
// verifica se ano é bissexto
if ($mes == 2 && ($dia < 01 || $dia > 29 || ($dia > 28 && (!is_int($ano/4))))) {
$situacao .= "Dia inválido";
}else
// verifica se o mes e valido
if ($mes < 01 || $mes > 12 ){$situacao .= "Mês inválido!";}
//verifica se o ano tem 4 digitos
$contaAno = strlen($ano);
if($contaAno !=4){
$situacao .= "Ano inválido";
}
/*
* verifica o tipo da transformação: bra para data no formato dd/mm/aaaa
* e eua para data no formato aaaa-mm-dd
*/
switch($tipoSai){
case "bra":
$dataFinal = "$dia$separadorSai$mes$separadorSai$ano";
break;
case "eua":
$dataFinal = "$ano$separadorSai$mes$separadorSai$dia";
break;
}
//verifica se deu erro
$mensagem = $situacao=="" ? $dataFinal : $situacao;
//retorna
return $mensagem;
}//fim da função
Carregando comentários...