Pergunta

Eu estou tentando escrever uma função para formatar uma data e hora para mim. Eu tenho uma função quase idêntico que formata apenas uma data. Essa função funciona bem. Acabei de adicionar algum código para tentar tê-lo formatar a data com um tempo. Ele deve retornar algo como "18 de maio de 2009 09:50" mas eu estou recebendo este aviso:

Warning: mktime() expects parameter 6 to be long, string given in
public_html/include/functions.php on line 421

Aqui está o código que eu tenho:

function dateTimeFormat($dateIn)
{
   $x = explode(" ",$dateIn);
   $y = explode("-",$x[0]);
   $z = explode(":",$x[1]);

   $year = $y[0]; 
   $month = $y[1];
   $day = $y[2];
   $hour = $z[0];
   $min = $z[1];

   $dateOut =date("F j, Y h:i A", mktime($hour, $min, 0, $month, $day, $year)); 

   return $dateOut;
}

O que é colocar para fora é errado também. Ele põe para fora:

December 31, 1969 07:00 PM

mas o timestamp no banco de dados é

2009-05-18 05:07:39
Foi útil?

Solução

PHP já tem um perfeitamente boa função de análise de data: strtotime() . Ele retorna um timestamp Unix que você pode passar para date().

Em outras palavras, a sua função pode ser reduzida a isso:

function dateTimeFormat($dateIn)
{
    return date("F j, Y h:i A", strtotime($dateIn));
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top