Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Data por extenso Gostaria de usar a data por extenso, vou usar esta função em varias classes, gostaria de saber onde é o melhor local de coloca-la. achei uma solução interessante nativa do php na página : https://joaoverissimoribeiro.wordpress.com/2013/06/17/php-datas-por-extenso-usando-os-recursos-nativos-do-php-para-data-por-extenso/ setlocale(LC_TIME, 'portuguese'); date_default_timezone_set('America...
LJ
Data por extenso  
Fechado
Gostaria de usar a data por extenso, vou usar esta função em varias classes, gostaria de saber onde é o melhor local de coloca-la.
achei uma solução interessante nativa do php na página : https://joaoverissimoribeiro.wordpress.com/2013/06/17/php-datas-por-extenso-usando-os-recursos-nativos-do-php-para-data-por-extenso/

setlocale(LC_TIME, 'portuguese');
date_default_timezone_set('America/Sao_Paulo');

$date = date('Y-m-d');
echo strftime("%A, %d de %B de %Y", strtotime($date));

ainda não testei, mas deve funcionar, só estou querendo saber onde devo criar a função ? e sempre fico na duvida se tenho que colocar Public Function ...ou Static ?

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (6)


MG

Luiz

Eu usaria como estático, assim não seria necessário instanciar a classe.

Crie uma classe "UtilDatas" e dentro dela crie o método estático, ou métodos que manipula datas, depois é só chamar:

UtilData::meu_método_estático
JD

Olá Luiz, tudo bom?
Sugiro que você coloque sua classe na pasta "app/lib/util/".
Sobre usar static ou public, você usa o public quando quer que determinado método seja acessível externamente, este método é um "comportamento" do objeto estanciado, ou seja, faz parte de seu escopo, e para se ter acesso ao método, primeiro tem que estanciar o objeto.
Um método static é um "comportamento" que não faz parte do escopo do objeto, sendo assim, você não precisa estanciar o objeto para ter acesso ao método, geralmente é utilizado o static quando há a necessidade de se obter apenas o resultado do método.
Se o método não precisar de nenhuma informação que faça parte do escopo do objeto, para retornar algo, este método pode ser setado como static.
Mas isso não é regra, vai de acordo com a necessidade e com o método de cada um.

LJ

Obrigado, ficou resolvido, abaixo o codigo.

  1. <?php
  2. class UtilDatas
  3. {
  4.     /**
  5.      * Class Constructor
  6.      */
  7.     static function dataextenso($dataext="")
  8.     {
  9.         setlocale(LC_TIME'portuguese'); 
  10.         date_default_timezone_set('America/Sao_Paulo'); 
  11.         if (!isset($dataext)||trim($dataext)==""){    
  12.             $dataext date('Y-m-d');
  13.         }
  14.         return strftime("%d de %B de %Y"strtotime($dataext));
  15.         //new TMessage('info',strftime("%d de %B de %Y", strtotime($dataext)));
  16.         
  17.     }
  18.     
  19. }
  20. // Utilização
  21. //UtilDatas::dataextenso('16-01-10');
  22. // resultado : 26 de abril de 2016
  23. // Se passar sem parametro , usa data de hoje
  24. ?>
JD

Ótimo, só uma dica.
Troque isso:
  1. <?php
  2. if (!isset($dataext)||trim($dataext)==""){    
  3.             $dataext date('Y-m-d');
  4.         }
  5. ?>


Por isso:
  1. <?php
  2. if (empty(trim($dataext))){    
  3.             $dataext date('Y-m-d');
  4.         }
  5. ?>


O isset verifica se a variável foi definida, no seu caso irá sempre retornar true, pois ela esta definida como um parâmetro.
Mesmo que ela não tenha valor, ela esta definida e já possui um endereço na memoria ram, sendo assim o isset ira sempre retornar true.
Usando a função empty você valida apenas o preenchimento da variável, sendo que se a variável estiver com valor vazio ou nulo, a função irá retornar true.
Existe uma diferença entre variável vazia e variável não definida, que muitas vezes passam despercebidas, mas futuramente podem gerar alguns bugs chatos srsrsr.
JD

Só para corrigir um detalhe srsrsr
Se a variável tiver com valor null, o isset retorna false, porém, no seu caso, você esta definido como padrão um valor vazio que é diferente de null.
E como PHP é fracamente tipado, isso pode te gerar transtornos, dependendo da versão do php que está utilizando.
LJ

Obrigado não só pelo código mas também pela explicação , estou sempre aprendendo.