Foros del Web » Programando para Internet » PHP »

resta dias a fecha

Estas en el tema de resta dias a fecha en el foro de PHP en Foros del Web. Hola, He encontrado este código, y me pregunto, también puede servir para restar Código PHP: <?php function  suma_fechas ( $fecha , $ndias )                ...
  #1 (permalink)  
Antiguo 17/01/2011, 09:59
 
Fecha de Ingreso: noviembre-2010
Mensajes: 21
Antigüedad: 13 años, 4 meses
Puntos: 0
resta dias a fecha

Hola,
He encontrado este código, y me pregunto, también puede servir para restar
Código PHP:
<?php
function suma_fechas($fecha,$ndias)
            
 
{
 if (
preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
            
             list(
$dia,$mes,$año)=split("/"$fecha);
            
 
 if (
preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
            
              list(
$dia,$mes,$año)=split("-",$fecha);
             
        
$nueva mktime(0,0,0$mes,$dia,$año) + $ndias 24 60 60;
        
$nuevafecha=date("d-m-Y",$nueva);
            
 
      return (
$nuevafecha);  
  }
echo 
'<head>
            
 
              <title>'
.$_SERVER[PHP_SELF].'</title>
            
 
      </head>
       <html>
       <body>'
;
       
$f1="06/02/2011";
$f2="30-01-1992";
$f11=suma_fechas($f125);
            
            echo 
"$f1 más 25 es  $f11<br>";
            
$f11=suma_fechas($f1, -40);
            
            echo 
"$f1 menos 40 es  $f11<br>";
            
$f21=suma_fechas($f2365);
            
 
            echo 
"$f2 más 365 es  $f21<br>";
            
$f21=suma_fechas($f2, -365);
            
 
            echo 
"$f2 menos 365 es  $f21<br>";
            
 
echo 
"<a href=$_SERVER[PHP_SELF]>Recargar la Página</a>";
echo 
'</body>
      </html>'
;
?>
  #2 (permalink)  
Antiguo 17/01/2011, 10:04
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: resta dias a fecha

Supongo que si solo tendrias que modificar la linea donde creas el maktime.. en ves que sume solo restale el valor deseasdo..
  #3 (permalink)  
Antiguo 17/01/2011, 10:43
Avatar de odiseus  
Fecha de Ingreso: enero-2011
Mensajes: 109
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: resta dias a fecha

Restar dias a una fecha es muy fácil:

Código PHP:
$timestamp time() 
$diasRestar 50;

$nuevaFecha mktime(0,0,0date("m"$timestamp), date("d"$timestamp)-$diasRestardate("Y"$timestamp)); 
En $nuevaFecha tendrías el timestamp de la fecha que queiras con los 50 dias restados.
  #4 (permalink)  
Antiguo 17/01/2011, 11:13
 
Fecha de Ingreso: noviembre-2010
Mensajes: 21
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: resta dias a fecha

odiseus,
Veo que lo que tú me propones es más fácil, lo que quiero es restarle un día a la fecha dos, y que lo guarde con ese dia de menos, con lo que tengo y lo que tú has puesto lo podría hacer ?

Código PHP:
Ver original
  1. <?php
  2. $conexion=mysql_connect("localhost","","") or
  3.   die("Problemas en la conexion");
  4.  
  5. mysql_select_db("",$conexion) or
  6.   die("Problemas en la seleccion de la base de datos");
  7.  
  8. $fecha1=$_REQUEST['anio1']."-".$_REQUEST['mes1']."-".$_REQUEST['dia1'];
  9. $fecha2=$_REQUEST['anio2']."-".$_REQUEST['mes2']."-".$_REQUEST['diasalida'];
  10.  
  11. mysql_query("insert into fecha(1,2) values ('$fecha1','$fecha2')",
  12. $conexion) or die("Problemas en el select".mysql_error());
  13.  
  14. mysql_close($conexion);
  15.  
  16. echo "registrado";
  17. ?>
  #5 (permalink)  
Antiguo 18/01/2011, 01:18
Avatar de odiseus  
Fecha de Ingreso: enero-2011
Mensajes: 109
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: resta dias a fecha

Quedaría algo así (no esta testeado) pero debería funcionar.

Un saludo!

Código PHP:
$conexion=mysql_connect("localhost","","") or
  die(
"Problemas en la conexion");
  
mysql_select_db("",$conexion) or
  die(
"Problemas en la seleccion de la base de datos");
  
$fecha1=$_REQUEST['anio1']."-".$_REQUEST['mes1']."-".$_REQUEST['dia1'];
$fecha2=$_REQUEST['anio2']."-".$_REQUEST['mes2']."-".$_REQUEST['diasalida'];

//Fecha 2 con 1 dia menos - guarda un timestamp
$fecha2Modificada mktime(0,0,0,$_REQUEST['mes2'], $_REQUEST['diasalida']-1$_REQUEST['anio2']);

//Para tener la fecha en numeros
list($dia$mes$anyo) = explode("-"date("d-m-Y"$fecha2Modificada));
 
mysql_query("insert into fecha(1,2) values ('$fecha1','$fecha2')",
$conexion) or die("Problemas en el select".mysql_error());
  
mysql_close($conexion);
 
echo 
"registrado"

Etiquetas: dias, fechas
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:59.