Foros del Web » Programando para Internet » PHP »

Restar Fechas

Estas en el tema de Restar Fechas en el foro de PHP en Foros del Web. como puedo restar dias entre 2 fechas??...
  #1 (permalink)  
Antiguo 26/08/2005, 16:17
Avatar de aRTeX  
Fecha de Ingreso: mayo-2005
Mensajes: 374
Antigüedad: 12 años, 7 meses
Puntos: 0
restar dias

como puedo restar dias entre 2 fechas??
  #2 (permalink)  
Antiguo 26/08/2005, 18:33
 
Fecha de Ingreso: agosto-2004
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
No entendi mucho lo que quieres..pero de todas formas te hice 2 funciones ...yo creo que una de ellas de va a servir

Código PHP:
<?
function operacion_fecha ($fecha,$dias) { 
list (
$dia,$mes,$ano)=explode("-",$fecha); 
if (!
checkdate($mes,$dia,$ano)){return false;} 
return 
date"d-m-Y"mktime(0,0,0,$mes,$dia+$dias,$ano) ); 
}


function 
diferencia_fecha ($fecha_ini,$fecha_fin) { 
list (
$dia_ini,$mes_ini,$ano_ini)=explode("-",$fecha_ini); 
list (
$dia_fin,$mes_fin,$ano_fin)=explode("-",$fecha_fin); 
if (!
checkdate($mes_ini,$dia_ini,$ano_ini) || !checkdate($mes_fin,$dia_fin,$ano_fin)){return false;} 
return 
abs(floor((mktime(0,0,0,$mes_ini,$dia_ini,$ano_ini)-mktime(0,0,0,$mes_fin,$dia_fin,$ano_fin)) /60/60/24));
}

//restar dos días 
echo  operacion_fecha('26-08-2005',-2).'<br>'
//Sumar 1 día 
echo operacion_fecha('26-08-2005',1).'<br>'

//Cantidad de días entre dos fechas 
echo diferencia_fecha('01-08-2005','02-08-2005').'<br>';
//..el orden en que pongas las fecha no importa
echo diferencia_fecha('02-08-2005','01-08-2005').'<br>';

?>
__________________
Marco de Arica (Chile)
  #3 (permalink)  
Antiguo 29/08/2005, 10:22
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
Restar fechas

Esto te da la diferencia en horas o en dias entre dos fechas:

http://www.nolimites.net/articulos/i...ic,1231.0.html

Para que te devuelva la fecha resultado de restar otras dos lo mejor es hacerlo usando el formato timestamp.

Para obtener la fecha actual en formato timestamp, se usa la función time(), que devuelve un número.

En cambio, si se desea obtener una fecha timestamp a partir de un dia,mes y año concreto, se puede usar la función mktime.

Una vez se tengan estas dos fechas en formato timestamp, fecha actual y fecha futura, sólo hay que restarlas (recordemos que son dos números enteros).

El resultado va a ser el número de segundos transcurridos que ya podemos convertirlos como queremos por si deseamos mostrar el número de días, horas o cualquier otro dato.

Si quieres conocer mejor estas funciones entra en:

http://www.php.net
  #4 (permalink)  
Antiguo 29/08/2005, 10:25
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Usa:
$actual = date("Y-m-d");
strtotime($actual)
Revisa el uso de "strtotime"
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:06.