Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/07/2009, 14:47
Perrin_1
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Duda de urgencia

mmm pero como puede ser que localmente si funcione y en el servidor no funcione, si todo esta mas que excelente la funcion de date_diff use el codigo que me dejaron por aqui...es este...

Código PHP:
   <?php
     
    
function datediff($interval, $datefrom, $dateto, $using_timestamps = false) {
    
/*
    $interval can be:
    yyyy - Number of full years
    q - Number of full quarters
    m - Number of full months
    y - Difference between day numbers
   (eg 1st Jan 2004 is "1", the first day. 2nd Feb 2003 is "33". The datediff is "-32".)
   d - Number of full days
   w - Number of full weekdays
   ww - Number of full weeks
   h - Number of full hours
   n - Number of full minutes
   s - Number of full seconds (default)
   */
  
   
if (!$using_timestamps) {
   
$datefrom = strtotime($datefrom, 0);
   
$dateto = strtotime($dateto, 0);
   }
   
$difference = $dateto - $datefrom; // Difference in seconds
  
   
switch($interval) {
  
   case 
'yyyy': // Number of full years
    
   
$years_difference = floor($difference / 31536000);
   if (
mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom), date("j", $datefrom), date("Y", $datefrom)+$years_difference) > $dateto) {
   
$years_difference--;
   }
   if (
mktime(date("H", $dateto), date("i", $dateto), date("s", $dateto), date("n", $dateto), date("j", $dateto), date("Y", $dateto)-($years_difference+1)) > $datefrom) {
   
$years_difference++;
   }
   
$datediff = $years_difference;
   break;
    
   case 
"q": // Number of full quarters
    
   
$quarters_difference = floor($difference / 8035200);
   while (
mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($quarters_difference*3), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
   
$months_difference++;
   }
   
$quarters_difference--;
   
$datediff = $quarters_difference;
   break;
    
   case 
"m": // Number of full months
    
   
$months_difference = floor($difference / 2678400);
   while (
mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($months_difference), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
   
$months_difference++;
   }
   
$months_difference--;
   
$datediff = $months_difference;
   break;
    
   case 
'y': // Difference between day numbers
    
   
$datediff = date("z", $dateto) - date("z", $datefrom);
   break;
    
   case 
"d": // Number of full days
    
  
$datediff = floor($difference / 86400);
   break;
    
   case 
"w": // Number of full weekdays
    
   
$days_difference = floor($difference / 86400);
   
$weeks_difference = floor($days_difference / 7); // Complete weeks
   
$first_day = date("w", $datefrom);
   
$days_remainder = floor($days_difference &#37; 7);
   
$odd_days = $first_day + $days_remainder; // Do we have a Saturday or Sunday in the remainder?
   
if ($odd_days > 7) { // Sunday
   
$days_remainder--;
   }
   if (
$odd_days > 6) { // Saturday
   
$days_remainder--;
   }
   
$datediff = ($weeks_difference * 5) + $days_remainder;
   break;
    
   case 
"ww": // Number of full weeks
    
   
$datediff = floor($difference / 604800);
   break;
    
   case 
"h": // Number of full hours
    
   
$datediff = floor($difference / 3600);
   break;
    
   case 
"n": // Number of full minutes
    
   
$datediff = floor($difference / 60);
   break;
    
  default: 
// Number of full seconds (default)
   
  
$datediff = $difference;
  break;
  }
 
  return 
$datediff;
   
  }
   
  
?>
<?php