Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maykel-ctba

Erro em conversão de data, funcionava até semana passada

Recommended Posts

Fala galera.

 

Tenho uma função que sempre usei, e inclusive no site onde estou utilizando, funcionava perfeitamente até ---ta-feira.

Pois então, não sei o que aconteceu ou se mexeram algo, mas não vem ao caso, preciso corrigir.

function format_date($dateStr, $outputFormat = 'd/m/Y')
{
	$regs = array(
		'@^(?<ano>\d{4})-(?<mes>\d{2})-(?<dia>\d{2})(?<hora>\s{1}\d{2})?(?<minuto>:\d{2})?(?<segundo>:\d{2})?$@',
		'@^(?<dia>\d{2})/(?<mes>\d{2})/(?<ano>\d{4})(?<hora>\s{1}\d{2})?(?<minuto>:\d{2})?(?<segundo>:\d{2})?$@',
	);
	
	foreach($regs as $regex){
		if(preg_match($regex, $dateStr, $reg)){
			$hora = empty($reg['hora']) ? 0 : $reg['hora'];
			$minuto = empty($reg['minuto']) ? 0 : str_replace(':', '', $reg['minuto']);
			$segundo = empty($reg['segundo']) ? 0 : str_replace(':', '', $reg['segundo']);
			
			$date = new DateTime();
			$date->setDate($reg['ano'], $reg['mes'], $reg['dia']);
			$date->setTime((float) $hora, (float) $minuto, (float) $segundo);
			
			return $date->format($outputFormat);
		}
	}
	
	throw new InvalidArgumentException('Formato de data inválido: '.$dateStr." para ".$outputFormat);
}

 

 

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Formato de data inválido: 01/03/15 para Y-m-d'

 

 

 

Usei var_dump na data para ver o que acontece e nada estranho:

 

 

 

string(8) "01/03/15"

 

 

Também verifiquei a versão do PHP:

 

 

5.3.14

 

Pq diabos parou de funcionar? Não lembro de ter mexido no PHP.INI, nem nada.


Descoberto.

Falha minha... o ano tem q ser por extenso (2015 e não 15).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.