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?
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.