PHP таблица на основе месяца и даты

#php #date

#php #Дата

Вопрос:

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

Вопрос в том, что я хочу поместить номер даты в столбец date и дни в столбец days, в основном date =1 так days of week=saturday , date =2 так days of week=sunday (на основе текущего календаря) и так далее

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

код

 <table class="table table-bordered">
     <thead>
         <tr>
            <th rowspan="2">Action</th>
            <th rowspan="2">Date</th>
            <th rowspan="2">Day of Week</th>
            <th rowspan="2">Location</th>
            <th rowspan="2">Brief Description of Activity </th>
            <th  colspan="6"><center>Project Code amp; Hour Worked</center> </th>
         </tr>
         <tr>
            <th>A</th>
            <th>Hours Worked</th>
            <th>B</th>
            <th>Hours Worked</th>
            <th>C</th>
            <th>Hours Worked</th>
          </tr>
     </thead>
     <tbody>
     <?php
       $start  = new DateTime('first day of this month');
       $end    = new DateTime('first day of this month   1 month');
       $period = new DatePeriod($start, new DateInterval('P1D'), $end);
       for($i= 1; $i < date('t')   1; $i  ){
          for($j =1;$j<=1;$j  ){
          echo "<td><a href='#modal-dialog' class='btn btn-xs btn-success' data-toggle='modal'><span class='fa fa-pencil'></span>i=".$i."</td>".PHP_EOL;
           }
          for($j =2;$j<=2;$j  ){
             foreach($period as $day){
                echo "<td>".$day->format('M-d')."</td>".PHP_EOL;
             }
          for($j =1;$j<11;$j  ){
             echo "<td></td>".PHP_EOL;;
          }
       echo "</tr>";
       }
    ?>                                    
    </tbody>
  

Ответ №1:

Вы делаете это неправильно. Вы перебираете дни и строите столбцы. Ваш цикл по дням должен создавать строки.

  <tbody>
     <?php
       $day = date('Y-m-d',strtotime('first day of this month'));
       for($i= 1; $i < date('t')   1; $i  ){
     ?>
     <tr>
      <td><a href='#modal-dialog' class='btn btn-xs btn-success' data-toggle='modal'><span class='fa fa-pencil'></span>i=<?php echo $i; ?></td>
      <td><?php echo date('M-d',strtotime($day)); ?></td>
      <td><?php echo date('l',strtotime($day)); ?></td>
       <?php
          for($j =1;$j<=8;$j  ){
             echo "<td></td>".PHP_EOL;
          }
       ?>
   </tr>
   <?php 
   $day = date('Y-m-d', strtotime(' 1 day', strtotime($date)));
 } ?>                                    
</tbody>
  

Комментарии:

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

2. Вам нужно проверить, чтобы date(‘w’,strtotime($ day)) была равна 0 или 6. Это даст вам те строки, которые вам нужно раскрасить.