Trabalhar com datas no PHP é bastante fácil e intuitivo. Porém, para quem está começando a conhecer a linguagem pode parecer algo bem difícil e impossível de aprender. Mas como isso não é verdade, vou mostrar neste pequeno artigo como trabalhar com datas no PHP. Seja gerando as datas automaticamente, ou apenas fazendo a formatação.

Um dos recursos mais úteis quando se trabalha com datas no PHP é a biblioteca DateTime. Esta biblioteca é extremamente flexível e permite que você crie, modifique e formate datas com facilidade. Além disso, ela oferece suporte a uma ampla variedade de formatos de data, permitindo que você trabalhe com datas em quase qualquer formato que precisar. Isso significa que, independentemente do formato em que você recebe uma data, a biblioteca DateTime pode ajudá-lo a convertê-la para um formato que possa ser facilmente manipulado em sua aplicação PHP.

Ao trabalhar com datas no PHP, é importante lembrar que o fuso horário é uma consideração importante. Isso ocorre porque diferentes regiões do mundo podem estar em fusos horários diferentes, o que pode afetar a forma como as datas são exibidas e manipuladas. Felizmente, o PHP oferece suporte a uma ampla variedade de fusos horários e oferece recursos para converter datas entre diferentes fusos horários. Isso significa que, mesmo que você esteja trabalhando com datas de várias regiões do mundo, ainda poderá exibi-las corretamente em sua aplicação PHP.

Uma das coisas mais importantes a serem lembradas ao trabalhar com datas no PHP é a importância de validar as entradas do usuário. Isso ocorre porque os usuários podem inserir datas em uma ampla variedade de formatos, e é importante garantir que as entradas do usuário sejam válidas antes de tentar manipulá-las em sua aplicação PHP. Felizmente, existem muitas bibliotecas e funções do PHP que podem ajudá-lo a validar entradas do usuário e garantir que suas operações com datas sejam precisas e confiáveis.

Para escrever qualquer data no PHP, você deve utilizar a função date. Vamos ver abaixo como se escreve no editor de códigos:

<?php

//escrever na tela a data de hoje automaticamente
echo date('d/m/Y');

O exemplo acima mostra como podemos facilmente escrever na tela a data de hoje gerada automaticamente pegando a data do servidor que está hospedando o script.

O exemplo deve mostrar na tela uma data no seguinte formato: 19/02/1994. É o formato em português. Mas nós devemos saber que tanto o PHP quanto a linguagem SQL foram criadas para trabalhar no idioma inglês. Por isso, sempre que formos realizar operações com data através do PHP ou do SQL, as datas precisam estar no formato inglês.

Para escrever a mesma data do exemplo anterior preparada para o banco de dados SQL (MySQL) seria assim:

<?php

//setando a data
$data = date('Y-m-d');

//escrevendo na tela
echo "$data";

Isso imprimiria na tela algo como 1994-02-19, que é a data no formato inglês que o SQL e o PHP “entendem”.

Agora, vamos aprender com pegar uma data em formato português e transformá-la no formato inglês. É bastante simples.

<?php

//primeiro pegamos a data que provavelmente foi passada via POST vinda de um
//formulário onde o usuário digitou em português
$data_pt = $_POST['data'];

//a data deve estar formatada desta forma: 19/02/1994
//por isso, vamos quebrá-la através da função explode para podermos formatá-la em inglês
$quebra = explode("/",$data_pt);
$dia = $quebra['0'];
$mes = $quebra['1'];
$ano = $quebra['2'];

//agora, montamos a data no formato inglês
$data_en = $ano.'-'.$mes.'-'.$dia;
Validação dos dados dos usuários

O código acima é uma sequência de operações em PHP que permite a conversão de uma data digitada pelo usuário em um formulário em português para o formato inglês. Ele começa obtendo a data digitada em português, que provavelmente foi enviada para o arquivo PHP via método POST, como parâmetro chamado ‘data’.

Em seguida, o código usa a função explode() para separar a data em três partes: dia, mês e ano. Isso é feito porque a formatação da data em português é diferente da formatação em inglês. A formatação em português geralmente usa o formato dd/mm/aaaa, enquanto que a formatação em inglês usa o formato aaaa-mm-dd.

Com as partes da data separadas, o código armazena o dia, mês e ano em três variáveis separadas. Essas variáveis são usadas em seguida para construir a data no formato inglês, que é salva em uma nova variável chamada $data_en.

A data no formato inglês é criada pela concatenação das três variáveis separadas, na ordem apropriada, com hífens (-) entre elas. O ano é colocado primeiro, seguido pelo mês e finalmente pelo dia. O resultado é uma string de data no formato aaaa-mm-dd que pode ser usada em operações com datas em PHP.

É importante observar que o código assume que a data digitada pelo usuário está no formato correto (dd/mm/aaaa) e que não contém erros de digitação ou formatação. Caso a data seja inserida em um formato diferente, ou contenha erros, o código pode não funcionar corretamente.

Outro ponto importante é que o código não faz nenhuma validação adicional da data, como checar se ela é uma data válida ou se está dentro de um determinado intervalo de datas. Essas validações adicionais podem ser importantes dependendo do contexto em que a aplicação será usada.

Este foi mais um artigo publicado originalmente em 17 de dezembro de 2009 no meu antigo blog BrasilPHP.net.

Hellston Linhares