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 ?

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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. // Utilização
  19. //UtilDatas::dataextenso('16-01-10');
  20. // resultado : 26 de abril de 2016
  21. // Se passar sem parametro , usa data de hoje
  22. ?>
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.