Foros del Web » Programando para Internet » PHP »

Funcion PHP para contar dias.

Estas en el tema de Funcion PHP para contar dias. en el foro de PHP en Foros del Web. Hola a todos... Solo una pregunta... Existe alguna funcion en php que me cuente los dias de diferencia entre dos fechas, pero teniendo en cuenta ...
  #1 (permalink)  
Antiguo 20/02/2010, 10:05
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 14 años, 8 meses
Puntos: 1
Funcion PHP para contar dias.

Hola a todos...

Solo una pregunta...
Existe alguna funcion en php que me cuente los dias de diferencia entre dos fechas, pero teniendo en cuenta el año contable, es decir año de 360 dias y meses de 30 dias.

Agradezco la ayuda.
  #2 (permalink)  
Antiguo 20/02/2010, 10:38
Avatar de camsworksinc  
Fecha de Ingreso: julio-2008
Ubicación: Queretaro
Mensajes: 261
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Funcion PHP para contar dias.

En la ayuda de PHP, encontre esta funcion para lo que necesitas:
Código PHP:
<?php
/* Calc days between two dates using the financial calendar
30/360 (usa) or 30E/360(european)<-default
$fecha1 and $fecha2 in format: aaaa-mm-dd
return days  or -1 in case of error.

based on cost_analysis.py module Ver. 0.1 public domain, no license required by Harm Kirchhoff
*/
function days_360($fecha1,$fecha2,$europeo=true) {
  
//try switch dates: min to max
  
if( $fecha1 $fecha2 ) {
    
$temf $fecha1;
    
$fecha1 $fecha2;
    
$fecha2 $temf;
  }

  
// get day month year...
  
list($yy1$mm1$dd1) = explode('-'$fecha1);
  list(
$yy2$mm2$dd2) = explode('-'$fecha2);

  if( 
$dd1==31) { $dd1 30; }

  
//checks according standars: 30E/360 or 30/360.
  
if(!$europeo) {
    if( (
$dd1==30) and ($dd2==31) ) {
      
$dd2=30;
    } else {
      if( 
$dd2==31 ) {
        
$dd2=30;
      }
    }
  }

  
//check for invalid date
  
if( ($dd1<1) or ($dd2<1) or ($dd1>30) or ($dd2>31) or
      (
$mm1<1) or ($mm2<1) or ($mm1>12) or ($mm2>12) or
      (
$yy1>$yy2) ) {
    return(-
1);
  }
  if( (
$yy1==$yy2) and ($mm1>$mm2) ) { return(-1); }
  if( (
$yy1==$yy2) and ($mm1==$mm2) and ($dd1>$dd2) ) { return(-1); }
 
  
//Calc
  
$yy $yy2-$yy1;
  
$mm $mm2-$mm1;
  
$dd $dd2-$dd1;
 
  return( (
$yy*360)+($mm*30)+$dd );
}

// usage:
echo days_360("2007-01-13","2007-05-20");
Espero te sirva!

Suerte!
  #3 (permalink)  
Antiguo 22/02/2010, 08:04
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Funcion PHP para contar dias.

Muchas gracias voy a revisarla y te cuento.
  #4 (permalink)  
Antiguo 22/02/2010, 08:10
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Funcion PHP para contar dias.

No seria mas facil usar la clase DateTime??
__________________
HV Studio
Diseño y desarrollo web
  #5 (permalink)  
Antiguo 01/02/2011, 12:14
 
Fecha de Ingreso: abril-2008
Mensajes: 6
Antigüedad: 16 años
Puntos: 0
Respuesta: Funcion PHP para contar dias.

Depronto esta te sirva mas, a mi me anda super bien

function calcularDias360($fechaV,$fechaFin){
//defino fecha Fin
$fechaf = explode('-',$fechaFin);
$ano1 = $fechaf[0];
$mes1 = $fechaf[1];
$dia1 = $fechaf[2];

//defino fecha V
$fecha = explode('-',$fechaV);
$ano2 = $fecha[0];
$mes2 = $fecha[1];
$dia2 = $fecha[2];

$diasD = $dia1 - $dia2 + 1;
$diasM = ($mes1 - $mes2) * 30;
$diasA = ($ano1 - $ano2) * 360;

$dias = $diasD + $diasM + $diasA;
return $dias;
}

Etiquetas: contar, dias, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:50.