Foros del Web » Programando para Internet » PHP »

Fecha actual menos 30 días

Estas en el tema de Fecha actual menos 30 días en el foro de PHP en Foros del Web. Tengo un formulario que uso para hacer búsquedas entre 2 fechas (2 cuadros de tex en el form). la búsqueda funciona bien, nada de problemas. ...
  #1 (permalink)  
Antiguo 21/07/2008, 10:15
Avatar de daosorio  
Fecha de Ingreso: mayo-2002
Ubicación: Veracruz
Mensajes: 235
Antigüedad: 22 años
Puntos: 3
Fecha actual menos 30 días

Tengo un formulario que uso para hacer búsquedas entre 2 fechas (2 cuadros de tex en el form). la búsqueda funciona bien, nada de problemas.

Quiero que los 2 campos del formulario tengan valor predeterminado.

Campo1: Tiene la fecha actual,
Código:
<? echo date("Y-m-d"); ?>
Funciona bien

Campo2:Quisiera que este campo tenga el valor de MENOS 30 días que la fecha actual.

Ejemplo:
Campo1: 31.07.2008
Campo2: 01.07.2008

Qué código le pongo al campo2 para me muestre el valor que necesito .. ?

Espero haberme explicado.

Saludos y gracias.
__________________
Mi Blog: www.daosorio.com
  #2 (permalink)  
Antiguo 21/07/2008, 10:21
Avatar de indy1508  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. México.
Mensajes: 212
Antigüedad: 17 años
Puntos: 0
Respuesta: Fecha actual menos 30 días

Puedes usar la funcion ereg para desglosar la fecha y asi restar el numero de dias que quieras

ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $f1, $mifecha)
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
  #3 (permalink)  
Antiguo 21/07/2008, 10:28
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Fecha actual menos 30 días

Más fácil que usar ereg mirate las funciones mktime, que combinadas con date, es decir:
Código PHP:
date("Y-m-d",mktime(parámetros)); 
Sería tu solución, sólo necesitas restar tal cual los 30 días al día que sea, sin preocuparte de los valores negativos y demás.

Mktime: http://es.php.net/manual/es/function.mktime.php
  #4 (permalink)  
Antiguo 21/07/2008, 10:30
 
Fecha de Ingreso: julio-2008
Mensajes: 9
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Fecha actual menos 30 días

Buenas yo lo hago conesta función:

function calcularFecha($dias)
{
$calculo = strtotime("$dias days");
return date("Y-m-d", $calculo);
}
//Llamo a la funcion para calcular.
$fecha_pasada = calcularFecha(-1);
//hago la query
$sql="select
$res= mysql_query($sql,$link);
$row = mysql_fetch_array($res);

//y luego de oos datos que saco menos 30
$row['fecha']==calcularFecha(-30)



A ver si podeís alugon ayudarme con estocon este código saco imagenes aletorias, pero como hacerlo para que no se repiten las que se muestran, este es mi código:
<?php
require_once ("conexion.php");
$link=conecta();
$sql = "select * from fotos";
$res= mysql_query($sql,$link);
$row = mysql_fetch_array($res);
$i=0;
while ( !empty($row) )
{
$foto[$i] = $row['foto'];
$i++;
$row = mysql_fetch_array($res);
}
//me muestra 3 de las que tengo, pero a veces se repiten y noquiero que se repitan
for ($i=0;$i<3;$i++){
$get= count($foto)-1;
$aleatoreo= rand(0,$get);
echo "<img border='0' src=\"thumb/".$foto[$aleatoreo]."\"><br>";
}
mysql_free_result($res);
mysql_close ($link);
  #5 (permalink)  
Antiguo 21/07/2008, 10:38
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Fecha actual menos 30 días

si es para la fecha actual, puedes usar:
Código PHP:
date('d-m-Y',mktime(0,0,0,date('m'),date('d')-30,date('Y')));
//o este
date('d-m-Y',strtotime('-30 day')); 
espero y te sirva, saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 21/07/2008, 11:20
Avatar de daosorio  
Fecha de Ingreso: mayo-2002
Ubicación: Veracruz
Mensajes: 235
Antigüedad: 22 años
Puntos: 3
Respuesta: Fecha actual menos 30 días

eits

Excelente ayuda, el code bueno fue el ...

Código PHP:
date('d-m-Y',strtotime('-30 day')); 
MUCHAS GRACIAS .. !!!!!!!!!!!!!!!!!!!!!!!!
__________________
Mi Blog: www.daosorio.com
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 10:42.