aquilesmaior

Função calcular diferença datas

Nov 18th, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.69 KB | None | 0 0
  1. <?php
  2. /* PESSOAL VALEU DEMAIS JÁ CONSEGUI RESOLVER BLZ, FIZ DE OUTRA FORMA,
  3. ANTES EU ESTAVA FAZENDO ASSIM:
  4. */
  5.  
  6.  
  7.  
  8.  
  9.     function testa($data_certidao, $data_atual){
  10.         // Cria uma função que retorna o timestamp de uma data no formato DD/MM/AAAA
  11.         function geraTimestamp($data) {
  12.             $partes = explode('/', $data);
  13.             return mktime(0, 0, 0, $partes[1], $partes[0], $partes[2]);
  14.         }
  15.  
  16.         // Usa a função criada e pega o timestamp das duas datas:
  17.         $time_100 = geraTimestamp($data_100);
  18.         $time_final = geraTimestamp($data_atual);
  19.  
  20.        
  21.         // Calcula a diferença de segundos entre as duas datas:
  22.         $diferenca =  $time_final - $time_100; // 19522800 segundos
  23.        
  24.         $dias = (int)floor( $diferenca / (60 * 60 * 24)); // 225 dias
  25.    
  26.     return $dias;
  27.     }
  28.  
  29.  
  30. // Define os valores a serem usados
  31. $data_certidao = '2013/11/10';
  32. $data_atual  = date('Y/m/d H:m:s');
  33.  
  34. echo testa($data_certidao, $data_atual);
  35.  
  36.  
  37. /*
  38. RESOLVI FAZENDO IGUAL ABAIXO E FUNCIONOU PERFEITO
  39. */
  40.  
  41. <?php
  42.  
  43. date_default_timezone_set('America/Sao_Paulo');
  44.  
  45.  
  46. function testa($inicio, $fim) {
  47.  
  48.  
  49. // Converte as datas para objetos DateTime do PHP
  50. // PARA O PHP 5.3 OU SUPERIOR
  51. $inicio = DateTime::createFromFormat('Y/m/d H:i:s', $inicio);
  52. //PARA O PHP 5.2
  53. // $inicio = date_create_from_format('d/m/Y H:i:s', $inicio);
  54.  
  55. $fim = DateTime::createFromFormat('Y/m/d H:i:s', $fim);
  56. // $fim = date_create_from_format('d/m/Y H:i:s', $fim);
  57.  
  58. // Calcula a diferença entre as duas datas
  59. $intervalo = $inicio->diff($fim);
  60.  
  61. // Imprime a diferença entre as duas
  62. // datas de modo formatado
  63. return $intervalo->format('%a');
  64.    
  65. }
  66.  
  67. $inicio = '2013/10/10 02:12:27';
  68. $fim  = date('Y/m/d H:m:s');
  69.  
  70. print testa($inicio, $fim);
Advertisement
Add Comment
Please, Sign In to add comment