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:
1 | echo date ( 'd/m/Y' ); // Resultado: 12/03/2009 |
2 | echo date ( 'H:i:s' ); // Resultado: 03:39:57 |
3 | echo 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.
1 | echo time(); // Mostra o timestamp atual: 1236844015 |
2 |
3 | $timestamp = time(); // Salva o timestamp atual numa variável |
4 | echo 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 |
4 | echo 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 |
3 | echo 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.