27 de set de 2012

Como saber o último dia do mês em PHP



Útimo dia do mês em PHP

Hoje estava desenvolvendo um sistema de controle de horas na empresa em que trabalho, e surgiu uma necessidade:
Como listar de forma automática, todas as horas extras do 1º ao último dia do mês atual?
Neste post veremos como resolver isso de forma muito simples, e com apenas uma linha de código!
Bom, para pegar o primeiro dia do mês é bem simples, bastando utilizar:



$DataInicial = date("Y-m-01"); - Sendo que 01 é o primeiro dia.

Agora, como saber de forma automática, o último dia do mês corrente, sendo que os meses possuem duração diferentes?
Bom, primeiro achei que teria que fazer uma Mega-Função para calcular esses dias, foi quando, recorrendo ao bom e velho Help-Sheet do PHP que possuo grudado em minha parede, notei que a função date() possui vários parâmetros além dos tão conhecidos "d", "m" e "Y".
E para minha surpresa, a solução foi muito mais simples do que eu poderia imaginar, bastou utilizar o parâmetro "t", e os problemas acabaram, pois este parâmetro retorna o total de dias do mês atual (quando utilizamos o parâmetro "d"na função), ficando assim:

$DataFinal = date("Y-m-t");

E ainda podemos, por exemplo, descobrir quantos dias teve o mês de fevereiro em 1992, simplesmente utilizando a função date assim:

$DataFinal = date("1992-02-t");

Fácil não?

3 comentários:

  1. $DataFinal = date("1992-02-t"); Não funciona!

    ResponderExcluir
    Respostas
    1. Qual a versão do PHP você está utilizando?

      Excluir
    2. Tente desta forma:

      $d = new DateTime('1992-02-01');
      echo $d->format( 'Y-m-t' );

      Excluir