Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2008, 12:35
Kinopio
 
Fecha de Ingreso: diciembre-2007
Ubicación: Frente al ordenador...
Mensajes: 139
Antigüedad: 16 años, 4 meses
Puntos: 1
conversión de tipos en fechas

hola ke tal maestros, aquí cuestionandolos una vez más, requeriendo su ayuda...
resulta que estoy haciendo una función llamada fechas para que me devuelva un arreglo con las 10 fechas anteriores, puede ser mas de 10... a partir del día de hoy, mmm...mi problema radica cuando son los diez primero días del mes, ya que la resta que uso me deja mocho el formato de fecha que estoy utilizando, me explico si hoy es 2008-07-03 y le kito un día...me kede 2008-07-2 lo que hace que me descuadre todo, sobre todo al bajar de mes...anexo el código por si saben donde puedo estar mal.

Código PHP:
function fechas()
 {
  
$fecha_actual date("Y-m-d");
  
$fecha_trabajar str_split($fecha_actual);
  
  
$año_hoy $fecha_trabajar[0] .$fecha_trabajar[1] .$fecha_trabajar[2] .  $fecha_trabajar[3];
  
$mes_hoy $fecha_trabajar[5] .$fecha_trabajar[6];
  
$hoy_hoy $fecha_trabajar[8] .$fecha_trabajar[9];
  
  
$reco 1;
  
//El primer dato del arreglo siempre será la fecha de hoy...
  
$dias_pasados[0]= $año_hoy."-".$mes_hoy."-".$hoy_hoy;
  
$hoy_hoy--;
  
  while(
$hoy_hoy!="01")
  {
   
$hoy_hoy--;
   
$dias_pasados[$reco]= $año_hoy."-".$mes_hoy."-".$hoy_hoy;
   
$reco++;
  }
  
  
$hoy_hoy="01";
  
$dias_pasados[$reco]= $año_hoy."-".$mes_hoy."-".$hoy_hoy;
  
$reco++;
  
//Checa los meses para poner ya sea 30 y 31 en el último dia...
  
if($hoy_hoy=="01")
  {
   
$mes_hoy--;
   
str_pad($mes_hoy2"0"STR_PAD_LEFT);  
     
   if(
$mes_hoy=="01" || $mes_hoy=="03" || $mes_hoy=="05" || $mes_hoy=="07" || $mes_hoy=="08" || $mes_hoy=="10" ||$mes_hoy=="12")
    {
     
$hoy_hoy="31";
    }
   
   elseif(
$mes_hoy=="02")
   {
    
$hoy_hoy="28";
   }
   
   elseif(
$mes_hoy=="04" || $mes_hoy=="06" || $mes_hoy=="09" || $mes_hoy=="11")
   {
    
$hoy_hoy="30";
   }
   
  }
  
  while(
$hoy_hoy!="01")
  {
   
$hoy_hoy--;
   
$dias_pasados[$reco]= $año_hoy."-".$mes_hoy."-".$hoy_hoy;
   
$reco++;      
  }
  
  return 
$dias_pasados;
 } 
ok, si lo corro...con el día de hoy me saldría esto...

2008-07-03
2008-07-1 --->se supone ke es 02
2008-07-01
2008-6-29 ---->aquí debería ser 06 y 30 en el día...
2008-6-28

así es como pasa, no sé si sea por la conversión de tipos, les agradecería mucho su ayuda...
__________________
----------------------------------------------------------
Algunas cosas simplemente son bellas...por que uno no puede tenerlas...