Nueva pregunta

Pregunta:

Fecha: 01-03-2018 17:53:45 (En Español)

rango de fechas[Resuelta]

Hola a todos, estoy tratando de saber cuando ocurre el cambio de fecha en un rango de fechas, mi rango lo tengo así:
<?php
$fechaInicio=strtotime("01-02-2018");
$fechaFin=strtotime("30-04-2018");
for($i=$fechaInicio; $i<=$fechaFin; $i+=86400){
    echo date("d-m-Y", $i)."<br>";
}
?>
Muchas gracias por cualquier consejo o ayuda.
Etiquetas: PHP Votos: 0 - Respuestas: 2 - Vistas: 12 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 02-03-2018 06:58:21 Si lo que deseas es saber cuando el rango cambia de mes, podría ser algo así:

    //Meses del año
    $meses = array('01'=>'Enero','02'=>'Febrero','03'=>'Marzo','04'=>'Abril','05'=>'Mayo','06'=>'Junio','07'=>'Julio','08'=>'Agosto','09'=>'Septiembre','10'=>'Octubre','11'=>'Noviembre','12'=>'Diciembre');
    
    //Rango de Fechas
    $fechaInicio=strtotime("01-02-2018");
    $fechaFin=strtotime("30-04-2018");
    //Variable de control
    $tmp = "00";
    
    for($i=$fechaInicio; $i<=$fechaFin; $i+=86400){   
        //Si control es menor que el mes actual Muestro el nombre del mes
        if( $tmp < date("m",$i) ){
            echo "<li>-> Mes: ".$meses[date("m",$i)].": </li>";
            $tmp = date("m",$i);//Actualizo control con el mes actual
        }else{
            //Si control no es menor al mes actual, muestro la fecha
            echo "<li>". date("d-m-Y", $i)."</li>";
            $tmp = date("m",$i);//Actualizo control
        }
        echo "<li>".date("d-m-Y", $i)."</li>";
    }
    


    Eso retorna algo más o menos:
    ->Mes: Febrero:
    01-02-2018
    02-02-2018
    03-02-2018
    ...
    ->Mes: Marzo:
    01-03-2018
    02-03-2018
    ...

    para que en la variable de control se detecte automaticamente el mes anterior al de la fecha de inicio del rango sería algo asi:
    $tmp = sprintf("%',02d\n",(date("m",$fechaInicio))-01);
    


    De esa manera al solo cambiar la fecha de inicio del rango, el sistema sabria desde donde controla los calculos. Tambien podrias omitir el uso del array de meses al utilizar F en el formateo de la fecha:

    date("F",$i)
    


    claro siempre controlando los locales para la traducción, ya que originalmente lo retorna en inglés.
      Votos: 1 - Link respuesta
     
  • Fecha: 02-03-2018 20:30:10 Muchísimas gracias, Carlos. Justo lo que quería.   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com