Código PHP:
<?php
function SumarFechas($ndias, $fechabase) {
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9]){2,4}/", $fechabase)) {
list($dia, $mes, $anno) = split("/", $fechabase);
}
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9]){2,4}/", $fechabase)) {
list($dia, $mes, $anno) = split("-", $fechabase);
}
$nueva = mktime(0, 0, 0, $mes, $dia, $anno) + $ndias * 24 * 60 * 60;
$nuevafecha = date("d/m/Y", $nueva);
return $nuevafecha;
}
for ($i = 1; $i < 9; $i++) {
$arreglo_dias[] = $i;
}
?>
<pre><?php print_r($arreglo_dias); ?></pre>
<?php
$fechabase = "28/10/2009";
$arreglo_fechas = array();
$dias = array_keys($arreglo_dias);
foreach ($dias as $dia) {
$arreglo_fechas[$dia] = SumarFechas(($arreglo_dias[$dia] - 1), $fechabase);
}
?>
<pre><?php print_r($arreglo_fechas); ?></pre>
Código:
El detalle es que en el segundo arreglo (fechas) entre el mes de octubre y noviembre se repite 1 dia (se duplica una fecha), algo que no me ocurre si pongo otra fecha base fuera de esos meses. El codigo parece estar bien, pero veo que ocurre sólo entre estos meses al variar el año, por lo que me resulta extraño. Existe alguna razón para que pase esto?? Estuve buscando algún error parecido por Internet y nada por ahora. Si la hay, me gustaria conocer la explicación. Si tienen otras sugerencias para mejorar y/o corregir el presente código, estaré agradecido y gustoso de recibirlas. Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 ) Array ( [0] => 28/10/2009 [1] => 29/10/2009 [2] => 30/10/2009 [3] => 31/10/2009 [4] => 01/11/2009 [5] => 01/11/2009 [6] => 02/11/2009 [7] => 03/11/2009 )