Diogo Matheus
Seguir18/06/2012 ·
16 minutos de leitura
Compartilhar
Trabalhar com manipulação de datas no PHP já foi uma grande dor de cabeça, antigamente era necessário decorar diversas funções e mesmo assim não era possível realizar algumas operações, como por exemplo, comparação de datas.
Neste artigo iremos conhecer algumas funções antigas, mas vamos focar na classe DateTime, que a partir da versão 5.3 do PHP apresentou funcionalidades interessantes. Independente do recurso utilizado, precisamos conhecer alguns conceitos que estão presente em ambas as opções, como os parâmetros utilizados para formatação de datas.
Caractere
Descrição
d
Dia do mês (2 dígitos)
D
Dia do mês (Representação textual, Mon até Sun)
m
Mês (2 dígitos)
M
Mês (Representação textual, Jan até Dec)
y
Ano (2 dígitos)
Y
Ano (4 dígitos)
l
Dia do mês (Representação textual, Sunday até Saturday)
Algumas funções para manipulação de datas já existem há algum tempo e foram sendo melhoradas a cada nova versão do PHP, dentre as principais funções podemos citar, date, time, mktime e strtotime.
A função date tem como objetivo formatar uma data, baseando-se em um timestamp, caso este não seja informado, o valor da data atual será utilizado.
Exemplo:
A função time tem como objetivo retornar o timestamp da data atual.
Exemplo:
A função mktime tem como objetivo retornar o timestamp de uma data específica, que pode ser datas antigas ou futuras.
Exemplo:
A função strtotime tem como objetivo retornar o timestamp de uma data em sua representação textual, essa função é muito utilizada para resgatar datas do banco de dados e também permite realizar operações simples como adicionar e subtrair períodos de tempo.
Exemplo:
Timestamp é uma forma de controlar o tempo como uma execução total de segundos. Esta contagem começa no Unix Epoch em 01 de janeiro de 1970. Portanto, o timestamp é o intervalo em segundos entre essa data inicial e uma data qualquer.
Manipulando datas com DateTime
Para acabar com as dores de cabeça, foi lançado na versão 5.2 e aperfeiçoado na versão 5.3 a classe DateTime, que conta com as seguintes classes auxiliares, DateInterval, DatePeriod e DateTimeZone. O grande objetivo dessas classes é padronizar a maneira de se trabalhar com datas no PHP, o que antes era confuso e desorganizado agora ficou simples. Também foram adicionadas funcionalidades interessantes, como por exemplo, comparação de datas, que antes exigia certa gambiarra para ser realizada onde cada pessoa programava sua própria solução.
Quem estava acostumado a trabalhar com as funções que já existiam, não terá dificuldades em utilizar a classe DateTime, afinal muitos recursos são os mesmos como veremos a seguir.
DateTime
Classe principal que conta com uma série de métodos para manipulação de datas, além disso também possui constantes com padrões para formatação de datas, como por exemplo, para cookie e rss.
O método construtor da classe DateTime trabalha com os mesmos recursos da função strtotime, além de aceitar um parâmetro adicional para informar um determinado timezone, uma instância da classe DateTimeZone.
Método
Descrição
add
Adiciona intervalo de tempo.
sub
Subtrai intervalo de tempo.
diff
Retorna intervalo de tempo entre duas datas.
format
Retorna data formatada, semelhante a função date().
Classe auxiliar responsável pela representação de intervalos, essa classe possui um estilo próprio para definição dos intervalos, confira as peças disponíveis para construção dos intervalos.
Caractere
Descrição
P
Representa período, vem antes de dia, mês, ano e semana.
Y
Representação de anos.
M
Representação de meses.
D
Representação de dias.
W
Representação de semanas.
T
Representa tempo, vem antes de hora, minuto e segundo.
Classe auxiliar responsável pela representação de períodos, costuma ser utilizada para verificar o número de ocorrências de um determinado período entre duas datas, também utiliza o padrão de definição da classe DateInterval.
Agora que conhecemos um pouco sobre a classe DateTime construiremos uma máquina do tempo, calma, será apenas uma calculadora onde poderemos realizar algumas operações como adicionar, subtrair e comparar datas.