Função PHP date_diff ()
Definição e Uso
A função date_diff () é um apelido de DateTime :: diff . Isso aceita dois objetos DateTime como parâmetros e recupera a diferença entre eles.
Sintaxe
date_diff($datetime1, $datetime2[, $absolute])
Parâmetros
Sr. Não | Parâmetro e Descrição |
---|---|
1 |
datetime1(Mandatory) Este é um objeto DateTime, representando uma das datas para a comparação. |
2 |
$datetime2 (Mandatory) Este é um objeto DateTime, representando uma das datas para a comparação. |
3 |
$absolute (Optional) Um valor booleano que representa se a diferença de intervalo deve ser deve ser positiva |
Valores Retornados
A função PHP date_diff () retorna um objeto DateInterval especificando a diferença entre as duas datas fornecidas. Em caso de falha, esta função retorna falso .
Versão PHP
Esta função foi introduzida pela primeira vez no PHP versão 5.3.0 e funciona com todas as versões posteriores.
Exemplo
O exemplo a seguir demonstra o uso da função date_diff () -
<?php
//Creating a DateTime object
$date1 = date_create("25-09-1989");
$date2 = date_create("1-09-2012");
$interval = date_diff($date1, $date2);
print($interval->format('%Y years %d days'));
?>
Isso produzirá o seguinte resultado -
22 years 7 days
Exemplo
O exemplo a seguir calcula a diferença entre uma determinada data e a data atual -
<?php
$date1 = date_create("25-09-1989");
$date2 = date_create();
$interval = date_diff($date1, $date2);
print($interval->format('%Y years %d days'));
?>
Isso produzirá o seguinte resultado -
30 years 14 days
Exemplo
<?php
//Creating a DateTime object
$date1 = date_create("25-09-2012");
$date2 = date_create("1-09-2014");
$interval = date_diff($date1, $date2);
print($interval->format('%Y years %m months %d days'));
print("\n");
$date3 = date_create("25-09-1989");
$date4 = date_create("19-03-2012");
$interval = date_diff($date3, $date4);
print($interval->format('%Y years %m months %d days'));
print("\n");
$date5 = date_create("16-11-2002");
$date6 = date_create("12-09-2014");
$interval = date_diff($date5, $date6);
print($interval->format('%Y years %m months %d days'));
print("\n");
$date7 = date_create("25-09-1989");
$date8 = date_create("1-09-2012");
$interval = date_diff($date7, $date8);
print($interval->format('%Y years %m months %d days'));
?>
Isso produzirá o seguinte resultado -
01 years 11 months 7 days
22 years 5 months 23 days
11 years 9 months 27 days
22 years 11 months 7 days