Guia Definitivo de Manipulação de Data no PHP 7

Manipulação de Datas no PHP

Datas no PHP é um assunto polêmico. Isso porque nós desenvolvedores, principalmente eu, temos certa dificuldade em lembrar de como manipular aquela data marota da melhor forma maneira possível, embora isso não seja um problema vou te ensinar.

Foi pensando nisso que eu resolvi escrever este artigo explicando em detalhes e por partes igual Jack, o Estripador como manipular com maestria as datas no nosso querido PHP.

Sem mais delongas, vamos nessa!

O PHP evoluiu e com isso vieram muitas mudanças significativas, você pode acompanhar essa mudança lendo esse artigo, melhorias do PHP 7.

data com DateTime class

A classe DateTime do PHP 5 e PHP 7 tem um papel fundamental na manipulação de datas e abstrai muito do trabalho do desenvolvedor.

// Como criar um objeto DateTime:
$date = new DateTime("2015-11-01 00:00:00");

É o timestamp que você quer?

Como pegar o timestamp atual com DateTime()

Você pode usar o método getTimestamp da classe DateTime para recuperar o timestamp da data atual do objeto e usar onde quiser.

Formato

Depois que você tiver instanciado um objeto DateTime e quiser transforma-lo para qualquer outro formato basta chamar a função format e passar o novo formato de data.

// Formatar data usando o objeto DateTime
$date = new DateTime();
$date->format("d/m/Y H:i:s");
// Output: 2020-07-15 09:40:30

Todos os formatos de datas estão disponíveis no PHP, esse link pode lhe ser útil: https://www.php.net/manual/en/datetime.formats.php

createFromFormat

Com o método createFromFormat é possível também criar um objeto de dateTime apenas com o formato e valor da sua data, para isso basta enviar o formato e o valor da data, veja o exemplo abaixo:

// Create data baseado em um formato de data.
$dateTo = DateTime::createFromFormat('d/m/Y H:i:s', $dateToStr);
echo $dateTo->getTimestamp(); // 749048300

Para adicionar minutos ao timestamp atual é bastante simples, com o método getTimestamp você pega o timestamp atual e incrementar 600 milisegundos o que é 10*60. Depois basta usar o setTimestamp para modificar a data dentro do seu objeto $date. Por exemplo:

<?php

$date = new DateTime(); // now
$dateAfterTenMinutes = $date->getTimestamp();
// Adiciona mais 10 minutes ao tempo atual.
$dateAfterTenMinutes += (10 * 60); 
$date->setTimestamp($dateAfterTenMinutes);
echo $date->format('Y-m-d H:i:s \G\M\TO');

Como pegar a data dos 3 últimos meses do ano:

$date = new DateTime(); // now
$dateAfterTenMinutes = $date->getTimestamp();
echo $date->format('Y-m-d H:i:s \G\M\TO');

echo "<br>";

$date2 = new DateTime(); // 3 months ago
$date2->setTimestamp(strtotime("-3 month"));
echo $date2->format('Y-m-d H:i:s \G\M\TO');

echo "<br>";
echo 'Year: '. $date2->format('Y');
echo 'Month: '. $date2->format('m');

Caso tenha dificuldades para utilizar o DateTime do PHP por algum motivo, você pode optar pelo Carbon. Uma extensão muito útil e que facilita a vida de quem manipula datas

O Carbon é uma extensão simples PHP para manipulação de datas que vai te ajudar bastante.

Julio Alves
administrator
Julio Alves é desenvolvedor web com mais de 8 anos de experiência, amante de PHP, Javascript, NodeJS, Ionic e ReactNative. Graduado em Sistemas de Informação pela Faculdade Estácio FIC do Ceará. Acredita que para se tornar um bom programador é preciso sobretudo ser esforçado e aberto para aprender todos os dias.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Lançamento Novo Curso de PHP 7
Lançamento Novo Curso de PHP 7