Unidade C – Introdução a linguagem PHP – parte 2

Datas

Trabalhar com datas e horas também é muitas vezes necessário para incorporar algum recurso nos sites e tratar dados de formulário ou banco de dados. Por exemplo, recuperar a data atual, formatar datas, pegar o dia da semana. Por isso, vamos conhecer as principais funções PHP para manipular datas.

Função

Descrição

mktime()

Retorna o timestamp Unix correspondente para os argumentos dados. Este timestamp é um longo inteiro contendo o número de segundos entre a Era Unix (January 1 1970 00:00:00 GMT) e o tempo especificado.
Argumentos podem ser omitidos da direita para esquerda; quaisquer argumentos assim omitidos serão definidos para o valor atual de acordo com a data e a hora local.
Sintaxe:

int mktime  ([ int $hora  [, int $minuto  [, int $second  [, int $mes  [, int $dia  [, int $ano  [, int $is_dst  ]]]]]]] )
time()

Retorna o timestamp Unix atual.

Sintaxe: time()
date()

Formata data e hora de acordo com a string format dada

Sintaxe: date("opções formatação", data)
checkdate()

Converte uma string para maiúsculas.
$str = "programação";

strtoupper($str); // Retorna "PROGRAMAÇÃO"

Vejamos na figura C.12 o uso das funções mktime() e time().

Na linha 11 foi criada uma data passando por parâmetro hora, minutos, segundos, mês, dia e ano.
Na linha 15 foi criada a variável $hoje com a data e hora atual.
As linhas 13 e 17 mostram as variáveis criadas. Faça o teste no seu navegador! Você verá que é mostrado um valor para as variáveis e não uma data/hora, como na figura C.13.

Como podemos ver, a data e hora mostradas não estão em um formato conhecido por nós. Precisaremos utilizar o função date() para formatar data e hora. A tabela abaixo apresenta as opções de formatação para a função date().

Opção Descrição
a Antes/Depois de meio-dia em minúsculo (am ou pm)
A Antes/Depois de meio-dia em maiúsculo (AM ou PM)
d Dia do mês, 2 dígitos com preenchimento de zero (01 até 31)
D Uma representação textual de um dia, três letras (Mon até Sun)
w Representação numérica do dia da semana 0 (para domingo) até 6 (para sábado)
m Representação numérica de um mês (01 a 12)
M Uma representação textual curta de um mês, três letras (Jan a Dec)
t Número de dias de um dado mês (28 até 31)
L Se um ano é bissexto (1 se está em ano bissexto, 0 caso contrário)
Y Uma representação de ano completa com quatro dígitos
y Uma representação do ano com dois dígitos
g Formato 12-horas de uma hora sem preenchimento de zero (1 até 12)
G Formato 24-horas de uma hora sem preenchimento de zero (0 até 23)
h Formato 12-horas de uma hora com zero preenchendo à esquerda (01 até 12)
H Formato 24-horas de uma hora com zero preenchendo à esquerda (00 até 23)
i Minutos com zero preenchendo à esquerda (00 até 59)
s Segundos, com zero preenchendo à esquerda (00 até 59)

Vamos ver como fica nosso código PHP utilizando agora a função date(). Veja na figura C.14. Nas linhas 12 e 16 foram criadas novas variáveis com as datas formatadas.  A figura C.15 mostra o resultado do código no navegador.


 

A "data e hora" retornadas no exemplo acima são do servidor onde a página está hospedada. No nosso caso, como estamos trabalhando com o servidor local, será a data/hora da máquina

 

 

Você pode ver mais opções de formatação acessando http://br2.php.net/manual/pt_BR/function.date.php.

 

Outra função interessante para tratamento de datas é a checkdate, útil para validar uma data. Imagine que o usuário informa uma data em um formulário, antes de trabalhar com esta data é importante validá-la. Veja o código da figura C.16. No mesmo arquivo, foi colocado o form e o código que verifica a data (quando o form é submetido chama o próprio arquivo, pois não tem nada em action). Algumas observações sobre o código:

- Na linha 14 é verificado se o form foi submetido. Neste caso, faz a verificação da data;
- Como a função checkdate espera três parâmetros, foi necessário quebrar a data em dia, mês e ano (linha 18);
- Na linha 24 é usada a função checkdate, passando os valores da data que estão no vetor $vdt.

A figura C.17 mostra o resultado do código acima no navegador, sendo uma execução com data válida e outro com data inválida.