ранг дат я инициализируюсь и конец в php

как реализация линии времени согласно рангу дат я инициализируюсь и конец, разработанный с таблицей реализовал цикл for для этого способа, но я имею также

$fechainicio = '19-03-2019';
$fechafin = '19-04-2019';

for($i=$fechainicio;$i<=$fechafin;$i++){
  echo $i;
} 

но у меня есть проблема в момент размещения этого в этой таблице оно я не функционирует, как я хочу, я размещаю правильный цикл, но когда я пробую размещать соответствующий цвет, он производит меня, но цикл полностью различный я ему благодарен за того, который может помогать мне решать эту проблему, или должен делать это с компонентом большое спасибо.

<table class="table table-bordered">
        <tr>
        <th>Etapa</th>
        <th>Actividad</th> 
        <th>Producto</th>
        <th>Departamento</th>
        <th>Analistas</th>
        <th>Tareas</th>
        <th>Tipo de Tarea</th>
        <th>%</th>
        <th>Municipio</th>
        <th>Gestores</th>
            <th>Beneficiarios</th>
            <th>Enero</th>
            <th>Febrero</th>
            <th>Marzo</th>
            <th>Abril</th>
            <th>Mayo</th>
            <th>Junio</th>
            <th>Julio</th>
            <th>Agosto</th>
            <th>Septiembre</th>
            <th>Octubre</th>
            <th>Noviembre</th>
            <th>Diciembre</th>          
      </tr>
        @foreach($tasks as $task)
            <tr>
                <td>{{$task->product->activity->phase->name}}</td> 
                <td>{{$task->product->activity->name}}</td> 
                <td>{{$task->product->name}}</td> 
                <td>{{$task->product->department->name}}</td> 
                <td>
                    @include('report.partials.analistas')
                </td>
                <td>{{$task->name}}</td> 
                <td>
                     {{ ($task->type_task == 0 ? 'Individual': '') }}
                     {{ ($task->type_task == 1 ? 'Grupal': '') }}
                     {{ ($task->type_task  == 2 ? 'Transversal': '') }}
                </td>
                <td>
                    <span class="badge {{ ($task->done < 60 ? 'bg-red' : ( $task->done < 99 ? 'bg-yellow' : 'bg-green' ) ) }}">
                        {{ number_format($task->done) }} % 
                    </span>
                </td>
                <td>
                    {{$task->city->name}}
                </td>
                <td>
                    @include('report.partials.gestores')
                </td>
                <td>
                    @include('report.partials.beneficiarios')
                    </td>
                    <td>
                        {{$project->date_initial}}
                    </td>
            </tr>
        @endforeach
    </table>
0
задан 20.03.2019, 06:47
1 ответ

Чтобы пробегать ранг дат ты можешь использовать классы DateTime , DateInterval и DatePeriod из php

$comienzo = new DateTime('19-03-2019');
$final = new DateTime('19-04-2019');
// Necesitamos modificar la fecha final en 1 día para que aparezca en el bucle
$final = $final->modify('+1 day');

$intervalo = DateInterval::createFromDateString('1 day');
$periodo = new DatePeriod($comienzo, $intervalo, $final);

foreach ($periodo as $dt) {
    echo $dt->format("Y-m-d\n");
}
// Resultado:
2019-03-19
2019-03-20
2019-03-21
// ...
2019-04-17
2019-04-18
2019-04-19

Otra opciГіn, что-то mГЎs отрезает, но с тем же output, он:

$comienzo = new DateTime('19-03-2019');
$final = new DateTime('19-04-2019');

for($i = $comienzo; $i <= $final; $i->modify('+1 day')){
    echo $i->format("Y-m-d") . "\n";
}
2
ответ дан 02.12.2019, 05:22
  • 1
    Но есть проблема aquí и дело в том, что конечная дата не включается в интервал (dí 20 апреля он не появляется в этом случае). Чтобы это включать нужно изменять конечную дату agregá ndole dí в. Habrí которому делать что-то как: $final = $final->modify( '+1 day' ); Видеть пример в этом ответе . – A. Cedano 20.03.2019, 12:32
  • 2
    Sí но в этих примерах в обоих случаях цикл идет от 19 до 19 (это, что я думаю, что OP хочет). Поэтому я поместил $final = new DateTime('20-04-2019'); в первый пример (20 он не выходит). – David Silva 20.03.2019, 12:42
  • 3
    Я понимаю, но это problemá костариканский. Предполагается, что é l recibirá эта информация как конечная дата: 19-04-2019, форма automá костариканская увеличивания dí в es изменяя дату. Ты не можешь менять это формы arbitrarí в в có я говорю 20-04-2019, чтобы создавать объект начиная с этой измененной цепи в руку . – A. Cedano 20.03.2019, 12:53
  • 4
    Я понимаю, у тебя есть вся razó n, изданный ответ – David Silva 20.03.2019, 13:02
  • 5
    если, чтобы говорить, когда я посылаю цикл for, он пробежал меня, как это у меня есть в таблице, и покрасил мне красный цвет segú n дата январь или февраль и así – Wilmer Ramiro Cristancho Cruz 20.03.2019, 15:48