Foros del Web » Programando para Internet » PHP »

Problema con resta de fecha

Estas en el tema de Problema con resta de fecha en el foro de PHP en Foros del Web. Tengo el siguiente ciclo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código php: Ver original for ( $i = 0 ; $i <= 11 ; $i ++ ) { $fecha ...
  #1 (permalink)  
Antiguo 29/07/2009, 10:52
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Problema con resta de fecha

Tengo el siguiente ciclo

Código php:
Ver original
  1. for($i = 0; $i <= 11; $i++) {
  2. $fecha = date ( "Y-m", strtotime ( '-' . $i . ' month' ) );
  3. //$texto .=  "<category Name='".(date("n",strtotime($fecha)))."' />\n";
  4. echo $fecha."<br>";
  5. }

Código:
2009-06
2009-05
2009-04
2009-03
2009-03
2009-01
2008-12
2008-11
2008-10
2008-09
2008-08
El problema esta en el mes que deberia ser febrero, el resultado es 2009-03...
  #2 (permalink)  
Antiguo 29/07/2009, 10:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Problema con resta de fecha

El problema es que febrero este año no tiene 29 dias, tienes que declarar algun if antes que borre de acuerdo al mes si tiene 30 dias que borre dos dias mas, si son 29 1 dia mas o 31 3 dias mas de acuerdo al año y el mes que se encuentre porque si es un año que febrero tiene 29 dias vas a tener que cambiar el codigo. Acuerdate que tu codigo dice cual mes cae 5 meses antes y buscando el 29 del -5 da marzo 1 para PHP. Luego continua con el otro -4 que es el 29 de marzo y asi sucesivamente
  #3 (permalink)  
Antiguo 29/07/2009, 12:24
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Respuesta: Problema con resta de fecha

el detalle es que yo no estoy restando dias, estoy restando meses...
  #4 (permalink)  
Antiguo 29/07/2009, 12:45
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Problema con resta de fecha

Por eso te digo el va a restar un mes al dia en en que se encuentra para que veas lo que te estoy diciendo hazlo asi
Código php:
Ver original
  1. $fecha = date ( "Y-m", strtotime ( '-5 month -2 days' ) );
  2. //$texto .=  "<category Name='".(date("n",strtotime($fecha)))."' />\n";
  3. echo $fecha."<br>";

Esto va a parecer
2009-02

Pero si lo haces solamente
Código php:
Ver original
  1. $fecha = date ( "Y-m", strtotime ( '-5 month' ) );
  2. //$texto .=  "<category Name='".(date("n",strtotime($fecha)))."' />\n";
  3. echo $fecha."<br>";

Te va a traer
2009-03

Porque va a buscar el 29 de febrero que no existe. Acuerdate que el codigo va a buscar conforme a la fecha que tiene el servidor y va a restar un mes de acuerdo a esa fecha que es del dia de hoy que es 29 resta menos 5 meses. Este error te va a pasar cuando tengas un mes que tenga 31 dias y los demas meses te va a traer repeticion en varios meses
  #5 (permalink)  
Antiguo 29/07/2009, 12:52
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: Problema con resta de fecha

Ok..
El problema esta en la fecha del dia de hoy es 29 si observamos en nuestro calendario
febrero de este año no trae 29 dias sino 28... si cambias la fecha de tu sistema por un
20 de julio del 2009 te mostrara la lista correctamente.

En este caso sera cuestion que emplees tu logica para validar estos dias.

saludos
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 07:26.