[PHP]: Datetime + Format

Faaala galeraaa, tudo bem com vocês?
Depois de algum tempo sem posts, voltaremos com tudo para trazer vários conteúdos maneiros pra vocês! 🤙
Hoje o assunto abordado será na linguagem PHP, que usamos aqui na FW7, no nosso projeto legado.
Mas nesse post, conheceremos só algumas funções específicas, usadas para trabalhar com datas.
Obs: Para melhor compreender esse conteúdo, você precisa ter um conhecimento básico de PHP. 😜
⏳ DateTime
Essa função é nativa do PHP. Ela permite que trabalhemos com a data e hora como se fossem objetos.
Dessa forma, a função DateTime() é a maneira mais fácil de estarmos manipulando datas dentro de uma aplicação.
🛠 Sintaxe:
Para utilizar o DateTime(), basta seguir a sintaxe à seguir.
$data = new DateTime();
Observe que não utilizamos nenhum parâmetro na função DateTime.
Ao realizar esse código, estamos criando um objeto $data que terá o valor atual da nossa data e hora.
Porém, podemos incluir um parâmetro dentro da nossa função DateTime, com uma data específica.
Vejamos o exemplo abaixo:
<?php
$dataAtual = new DateTime();
$dataEspecifica = new DateTime('2022-01-22');
print_r($dataAtual);
echo "<br>";
print_r($dataEspecifica);
Dessa forma, observe o resultado:
DateTime Object ( [date] => 2022-07-29 17:58:46.784442 [timezone_type] => 3 [timezone] => UTC )
DateTime Object ( [date] => 2022-01-22 00:00:00.000000 [timezone_type] => 3 [timezone] => UTC )
🧠 Format
Na função DateTime, geramos um objeto. Portanto, a partir disso podemos utilizar o método format(), capaz de formatar o datetime a qualquer momento.
🕰 Esses são os formatos possíveis:
Data:
d – Representa o dia do mês (01 a 31);
m – Representa um mês (01 a 12);
y – representa um ano contendo 2 dígitos;
Y – representa um ano contendo 4 dígitos;
l (‘L’ minúsculo) – representa o dia da semana por extenso;
Hora:
H – formato de uma hora de 24 horas (00 a 23);
h – formato de 12 horas de uma hora com zeros à esquerda (01 a 12);
i – Minutos com zeros à esquerda (00 a 59);
s – Segundos com zeros à esquerda (00 a 59);
a – Antimeridiano e pós-meridiano em minúsculas (am ou pm);
Digamos que recebemos um dado com uma valor formatado como Y-m-d H:i:s. Podemos então modificar para o formato que quisermos através do format.
Vejamos no exemplo abaixo:
<?php
$dataAtual = new DateTime();
$dataEspecifica = new DateTime('2022-01-22');
echo $dataAtual->format('d-m-y H:i:s');
echo "<br>";
echo $dataEspecifica->format('d-m-Y H:i:s');
Dessa forma, teremos como resultado algo como:
29-07-22 18:30:12
22-01-2022 00:00:00
🏆 Dicas
Além dessas funções, existem algumas dicas para nos ajudar no dia a dia.
Vejamos alguns exemplos:
⭐️ Último dia do mês
Podemos também utilizar a função format() para obter o último dia do mês.
<?php
$dataAtual = new DateTime();
echo $dataAtual->format('t');
Resultado:
31
⭐️ Modificar
Podemos modificar o valor do objeto DateTime, através do método modify.
Vejamos o exemplo abaixo:
<?php
$dataEspecifica = new DateTime('2022-01-22');
$dataEspecifica->modify('+2 day');
echo $dataEspecifica->format('d-m-Y H:i:s');
Resultado:
24-01-2022 00:00:00
⭐️ Adicionar
Podemos adicionar um valor ao objeto DateTime, através do método add.
Veja o exemplo abaixo, adicionando 2 dias há uma data já definida:
<?php
$dataEspecifica = new DateTime('2022-01-22');
$dataEspecifica->add(new DateInterval('P2D'));
echo $dataEspecifica->format('d-m-Y H:i:s');
Resultado:
24-01-2022 00:00:00
⭐️ Subtrair
Podemos subtrair um valor ao objeto DateTime, através do método sub.
Vejamos o exemplo abaixo, subtraindo 2 dias de uma data existente:
<?php
$dataEspecifica = new DateTime('2022-01-22');
$dataEspecifica->sub(new DateInterval('P2D'));
echo $dataEspecifica->format('d-m-Y H:i:s');
Resultado:
20-01-2022 00:00:00
🎯 Conclusão
Entender como funciona o DateTime é essencial para lidar com datas e manipulações da mesma, fazendo com que ela se adeque a sua necessidade, para, por exemplo, exibir ela, ou até mesmo para a operação de um sistema.
A maioria das linguagens de programação possui uma função específica para isso. E é muito importante que você entenda como funcionam essas funções nativas, para evitar o uso de bibliotecas e manter a performance da aplicação.
🔗 Referências
- https://blog.betrybe.com/php/php-date/
- https://www.homehost.com.br/blog/tutoriais/php/php-date-format/
“O espaço entre a teoria e a prática não é tão grande como é, a teoria na prática.”
comments powered by DisqusPablo Danilo Mota.