Olá, tudo tranquilo?!
Uma ação bem simples e que pode nos auxiliar em muito no dia a dia é calcular a diferença entre duas datas. Para isso vou demonstrar a forma mais simples para realizar esta ação.
<?php
$dateStart = new \DateTime('2017-01-01');
$dateNow = new \DateTime(date('Y-m-d'));
$dateDiff = $dateStart->diff($dateNow);<
Vamos detalhar o código acima:
Primeiro armazenamos a data base na qual desejamos verificar.
Logo em seguida criamos uma variável e nela inserimos a data atual, lembrando que poderia ser qualquer data passado, presente ou futuro.
Podemos notar que para calcular a diferença entre as duas datas foi utilizado a data base e como ela é um objeto “DateTime” podemos chamar seu método “diff”, abaixo podemos analisar o resultado da nossa ação.
object(DateInterval)[3]
public 'y' => int 0
public 'm' => int 1
public 'd' => int 7
public 'h' => int 0
public 'i' => int 0
public 's' => int 0
public 'invert' => int 0
public 'days' => int 38
Como retorno obtivemos um objeto do tipo “DateInterval” com isso teremos acesso a diversos atributos públicos, abaixo vamos detalhar cada um deles:
- “y”
- Número de anos.
- “m”
- Número de meses.
- “d”
- Número de dias.
- “h”
- Número de horas.
- “i”
- Número de minutos.
- “s”
- Número de segundos.
- “invert”
- Será 1 se o intervalo representa um período negativo de tempo e 0 (zero) caso contrário.
- “days”
- Representa o número total de dias entre as duas datas (data inicial e data final).
Podemos também calcular a diferença de horas dentro do mesmo dia, vejamos o exemplo abaixo:
<?php
$dateStart = new \DateTime('2017-02-08 08:00');
$dateNow = new \DateTime(date('Y-m-d H:i'));
$dateDiff = $dateStart->diff($dateNow);
Como podemos observar, utilizamos a mesma data para ambas as variáveis divergindo apenas nas horas e minutos, podemos observar abaixo o resultado:
object(DateInterval)[3]
public 'y' => int 0
public 'm' => int 0
public 'd' => int 0
public 'h' => int 9
public 'i' => int 44
public 's' => int 0
public 'invert' => int 0
public 'days' => int 0
Com uma simples operação conseguimos descobrir que a diferença entre os dois valores são de 9horas e 44 minutos.
Para acessarmos os valores de cata atributo basta chamá-los de forma direta, vejamos o exemplo abaixo para capturarmos a hora e minuto do nosso exemplo.
<?php
// códigos do nosso exemplo acima
$result = $dateDiff->h . ' horas e ' . $dateDiff->i . ' minutos';
Nossa variável “$result” conterá a “string” “9 horas e 54 minutos”.
Viram como é muito simples calcular a diferença entre duas datas com PHP, espero que tenham apreciado e que seja útil no dia a dia de vocês.
Até a próxima pessoal 🙂