Desmistificando e dominando datas com PHP

Felipe Panegalli
3 min readMar 22, 2021

--

#php #laravel #backend #frontend

Salve salve pessoal, tudo tranquilo? Espero que sim :D

Trabalhar com data pode ser muitas vezes complicado ou até mesmo estressante, pois mesmo fazendo os diversos testes, ainda assim o meu resultado pode ser diferente do seu.

Por esse motivo, resolvi fazer este artigo para ajudar a comunidade e também para ficar como um artigo de consulta rápida já que quebrei muito a cabeça para tentar entender certas funções e validá-las.

O tal fuso horário

Como muitos sabem, um dos maiores problemas em várias partes do mundo e também pode ser um grande problema na criação do seu aplicativo/software são datas inconsistentes por questão do fuso horário.

O Brasil, por exemplo, possui 4 fusos do GMT-2 até GMT-5. Por esse motivo existe o famoso horário padrão de Brasília (GMT-3).

Para “setar” em uma aplicação PHP o fuso horário, basta adicionar o código abaixo (considerando horário padrão de Brasília).

E para verificar quais são os Fusos disponíveis, basta adicionar:

O que é esse H:i:s?

Para quem está iniciando no PHP e vem de outra linguagem por exemplo, são caracteres que são identificados e convertidos em data e horário. Abaixo segue uma lista dos mais utilizados. (Não se preocupe, ao final desse artigo irei postar todas as referências de forma completa).

Data:
Caractere | Descrição | Exemplo
d | Dia do mês com zero a esquerda | 01 até 31
m | Representa o Mês com zero a esquerda |01 até 12
y | Representa o ano com 2 algarismos | 21 (pode ser 1921 ou 2021)
Y | Representa o ano com 4 algarismos | 2021

Hora:
Caractere | Descrição | Exemplo
H | Hora em formato de 24 horas | 00 até 23
i | Minutos com zero a esquerda | 00 até 59
s | Segundos com zero a esquerda | 00 até 59

Nota-se que devem ser respeitados os caracteres conforme suas “caixas” pois são “case-sensitives”.

Segue um exemplo de data e hora atual:

Minha data está no padrão americano e agora?

Esse é um dos problemas mais recorrentes e que percebi durante os anos trabalhando com o PHP: converter data de EN para PT_BR e vice-versa.

Antigamente era muito recorrente ver funções de conversão utilizando a função explode() do PHP (função que quebra uma sentença em array por meio de um caracter) e, querendo ou não, isso pode consumir uma grande quantidade de memória na exibição de um relatório por exemplo.

Por esse motivo, apresento-lhes o strtotime, uma função que pega uma data em formato de string e transforma em um Integer Unix Timestamp.

Essa função recebe dois parâmetros, o formato e a data em formato de string conforme exemplo abaixo:

Nesse nosso exemplo, ele pegou uma data tipicamente do Javascript e transformou em uma data/horário em PT_BR sem a necessidade de usar o explode ou outro meio qualquer.

Espero que esse artigo tenha ajudado muita gente. Comenta aí o que você achou e o que você gostaria de ver nos próximos artigos.

Grande abraço,

Ahhh, e as referências que não podem faltar :D:
https://www.php.net/manual/pt_BR/timezones.php
https://www.php.net/manual/pt_BR/function.strftime.php
https://www.php.net/manual/pt_BR/function.date.php

--

--

Felipe Panegalli
Felipe Panegalli

Written by Felipe Panegalli

Amante da tecnologia, viagens e música :D

No responses yet