Trabalhando com datas no PHP

No PHP existem diversas funções para o tratamento de datas. Você pode exibir a data atual (antigas e futuras também) de várias formas. Usando a função date() do PHP é possível formatar a data atual de diversas formas, vamos a alguns parâmetros mais comuns que podem ser usados:
d – Dia do mês com 2 dígitos
D – Representação textual do dia (três letras: Mon até Sun)
m – Representação numérica do mês com 2 dígitos
M – Representação textual do mês (três letras: Jan a Dec)
y – Representação do ano com 2 dígitos
Y – Representação do ano com 4 dígitos
l (‘L’ minúsculo) – Descrição do dia da semana (Sunday até Saturday)
h – Formato em 12 horas
H – Formato em 24 horas
i – Minutos com 2 dígitos
s – Segundos com 2 dígitos
A – AM ou PM
Mas onde você usa isso? Essas letras são argumentos da função date, veja alguns exemplos:

1echo date('d/m/Y'); // Resultado: 12/03/2009
2echo date('H:i:s'); // Resultado: 03:39:57
3echo date('d/m h:i A'); // Resultado: 12/03 03:39 AM

Viram como é fácil?
No MySQL existem os tipos de coluna DATE e DATETIME que são para armazenar datas e datas com hora respectivamente. O formato de entrada de um campo DATE é AAAA-MM-DD e do DATETIME é AAAA-MM-DD HH:MM:SS. Pra usar a função date() e gerar datas no formato de entrada do MySQL é só fazer assim:

1$data date('Y-m-d'); // Formato DATE: 2009-03-12
2$data date('Y-m-d H:i:s'// Formato DATETIME: 2009-03-12 03:39:57

Uma função muito usada é a time(): ela retorna um valor chamada UNIX TIMESTAMP que é o número de segundos que se passaram desde 1970 até agora. É um número de 11 algarismos (até agora) e também serve como segundo argumento da função date() quando queremos formatar uma data antiga ou futura.

1echo time(); // Mostra o timestamp atual: 1236844015
2
3$timestamp = time(); // Salva o timestamp atual numa variável
4echo date('d/m/Y H:i:s'$timestamp); // Exibe DD/MM/YYYY HH:MM:SS em função de um timestamp

Quando se precisa trabalhar com datas antigas e/ou futuras, uma função útil para ajudar a encontrar o timestamp é a mktime(), podemos usar ela da seguinte forma:

1// Ordem dos argumentos do mktime(): hora, minuto, segundo, mes, dia e ano
2
3$timestamp mktime(20, 03, 58, 02, 09, 1993); // Gera o timestamp da data 09/02/1993 as 20:03:59
4echo date('d/m ~ h:i'$timestamp); // Resultado: 09/02 ~ 20:03


Se você está pegando datas salvas no MySQL pode reparar que ela vem no formato AAAA-MM-DD, pra gerar o timestamp de uma data assim é só usar a função strtotime(), dessa maneira:

1$data_mysql '2009-03-12 03:54:21';
2$timestamp strtotime($data_mysql); // Gera o timestamp de $data_mysql
3echo date('d/m/Y'$timestamp); // Resultado: 12/03/2009

Acredito que eu não tenha falado de nem metade de todas as funções para manipulação e controle de datas do PHP, mas essas são, sem dúvida, as mais importantes e mais usadas… Dê uma olhada na documentação (no fim deste post) de cada uma delas que você encontrará outros exemplos e formas de uso.