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_hoy, 2, "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...