segunda-feira, 25 de outubro de 2010

phpNucleum 5 - Formatação de datas

Mudanças na classe Auxilio:
- O método obterDataFormatada($dataiso,$formato) foi renomeado para formatarDataViaGetDate($dataiso,$formato)
- O método obterDataFormatadaPadraoStrftime($timestamp,$formato) foi renomeado para formatarDataViaStrftime($timestamp,$formato)
- Adicionalmente, foi criado o método formatarData($dataiso,$formato), que recebe uma data em formato ISO e converte para o formato especificado no padrão strftime ("%d/%m/%Y"). Internamente, o método formatarData converte a data ISO em timestamp e chama o método formatarDataViaStrftime. - O método formatarData utiliza o formato que está no XML da aplicação caso o parâmetro $formato não seja especificado.
Isto foi feito pois o comando utilizado pelo método que utiliza strtime permite obter dias da semana e nomes de mês em português.
Porém, o retorno do nome destes detalhes em português não funciona com períodos menores que 1970 e maiores que 2038.

Exemplos:
Caso de teste 1: OK, data 31/12/2010.
 
    $data = "2010-12-31";
    $dataF = N::$objAuxilio->formatarData($data, "%d/%m/%Y %A");
    var_dump($dataF);
    $dataF = N::$objAuxilio->formatarDataViaGetDate($data, "d/m/Y l");
    var_dump($dataF);
/* Saída:
string '31/12/2010 sexta' (length=16)
string '31/12/2010 Friday' (length=17) */

Caso de teste 2: ERRO, data 31/12/2010.
    $data = "1965-12-31";
    $dataF = N::$objAuxilio->formatarData($data, "%d/%m/%Y %A");
    var_dump($dataF);
    $dataF = N::$objAuxilio->formatarDataViaGetDate($data, "d/m/Y l");
    var_dump($dataF);
/* Saída:
string '31/12/1965 Friday' (length=17)
string '31/12/1965 Friday' (length=17) */

Para obter a data atual basta chamar: N::$objAuxilio->formatarData(false, "%d/%m/%Y");

Nenhum comentário: