calculo entre data inicial e data final boa noite, precisaria de uma idéia para pegar os campos no banco de dados de data inicial e data final, subtrair uma da outra para achar a quantidade de dias, tentei com evaluate, mas to errando em algo, poderiam me ajudar? grato Felipe...
FR
calculo entre data inicial e data final  
boa noite, precisaria de uma idéia para pegar os campos no banco de dados de data inicial e data final, subtrair uma da outra para achar a quantidade de dias, tentei com evaluate, mas to errando em algo, poderiam me ajudar?


grato

Felipe

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (4)


LC

Aqui tem uma explicação:
https://www.php.net/manual/pt_BR/function.date-diff.php

 
  1. <?php
  2. // data de hoje ou maior data, só pegar o campo do banco de dados
  3. $hj = new DateTime();
  4. ou
  5. $data_maior = new DateTime( date( "Y-m-d", strtotime( $campo-do-banco-de-dados ) ) );
  6. // data menor, só pegar o campo do banco de dados
  7. $data_menor = new DateTime( date( "Y-m-d", strtotime("2020-01-01") ) );
  8. // intervalo/diferença em dias/ano/meses ....
  9. $intervalo = $data_maior->diff( $dataarq );
  10. var_dump($intervalo);
  11. echo "Dias: {$intervalo->days}";
  12. ?>
FR

muito obrigado!
JF

Fiz uma função em que tratamento de datas não me incomodam mais. Segue:
 
  1. <?php
  2. /**
  3. * Diferença entre datas.
  4. * Exemplos
  5. * $intervalo = Uteis::difData($data1, $dtata2);
  6. * echo "Intervalo é de {$intervalo->y} anos, {$intervalo->m} meses e {$intervalo->d} dias";
  7. * Se quiser a diferença em dias, use $intervalo->days
  8. * Onde:
  9. * 'y' => Anos
  10. * 'm' => Meses
  11. * 'd' => Dias
  12. * 'h' => Horas
  13. * 'i' => Minutos
  14. * 's' => Segundos
  15. * 'weekday'
  16. * 'weekday_behavior'
  17. * 'first_last_day_of'
  18. * 'invert'
  19. * 'days' => Intervalo ente, em dias
  20. * 'special_type'
  21. * 'special_amount'
  22. * 'have_weekday_relative'
  23. * 'have_special_relative' => int 0
  24. */
  25. public static function difData( $data1, $data2 = NULL )
  26. {
  27. $data1 = new DateTime( $data1 );
  28. $data2 = $data2 == NULL ? new DateTime(date("Y-m-d")) : new DateTime( $data2 );
  29. $dataMaior = $data1 > $data2 ? $data1 : $data2 ;
  30. $dataMenor = $data1 > $data2 ? $data2 : $data1;
  31. return $dataMaior->diff( $dataMenor );
  32. }
  33. ?>
FR

poxa meu amigo, muito obrigado, vou estudar aqui! grato