irwan dwiyanto
irwan dwiyanto

Reputation: 690

How Set date in month to column table with codeigniter

I try to create a table with a date column within a month, I want to try to enter the date that I have into the table but I do not understand its logic ..

<?php
    $Month = date('m');
    $Year = date('Y');
    $day = cal_days_in_month(CAL_GREGORIAN, $Month ,$Year);

    $q = $this->db->select('nm_py, dt_start,dt_finish')->from('tb_payment')->get();
    $data = $q->result_array();

    //example data nm_py : Mobile, dt_start: 2018-05-02, dt_finish: 2018-05-05
    //example table output as expected
    // | NO| Payment | Month
    // |___|_________| 1 | 2 | 3 | 4 | 5 | 6 | 7 | xxxxx
    // | 1 |  Mobile | - | Y | Y | Y | Y | - | - | xxxxxx
?>

<table>
    <thead>
    <tr>
        <th class="text-center">No</th>
        <th class="text-center">Payment</th>
        <th class="text-center" colspan="<?php echo $day; ?>">Month</th>
    </tr>
    <tr>
        <th class="text-left"></th>
        <th class="text-left"></th>
        <?php
            for ($x = 1; $x <= $day; $x++) {
                echo "<th class='text-center'>".$x."</th>";
            }       
        ?>
    </tr>
    <thead>  
    <tbody>
        <?php $no = 1; foreach($data as $row) { ?>

        <?php $no++; }?>
    </tbody>
</table>

Upvotes: 0

Views: 138

Answers (1)

HamzaNig
HamzaNig

Reputation: 1029

You can use date_create to get day see working code bellow :

<?php

   $q = $this->db->select('nm_py, dt_start,dt_finish')->from('tb_payment')->get();
    $data = $q->result_array();

    //example data nm_py : Mobile, dt_start: 2018-05-02, dt_finish: 2018-05-05
    //example table output as expected
    // | NO| Payment | Month
    // |___|_________| 1 | 2 | 3 | 4 | 5 | 6 | 7 | xxxxx
    // | 1 |  Mobile | - | Y | Y | Y | Y | - | - | xxxxxx
?>

<table>
    <thead>
    <tr>
        <th class="text-center">No</th>
        <th class="text-center">Payment</th>
        <th class="text-center" colspan="<?php echo $day; ?>">Month</th>
    </tr>
    <tr>
        <th class="text-left"></th>
        <th class="text-left"></th>
        <?php
            for ($x = 1; $x <= $day; $x++) {
                echo "<th class='text-center'>".$x."</th>";
            }       
        ?>
    </tr>
    <thead>  
    <tbody>
        <?php $no=1; foreach($data as $row) { 

                 echo "<tr>";
                 echo "<td class='text-center'>".$no."</td>";
                 echo "<td class='text-center'>".$row['nm_py']."</td>";

                // days values
                $day_start=date_create($row['dt_start']);
                $day_end=date_create($row['dt_finish']);

        for ($x = 1; $x <= $day; $x++) {

            if($x >=$day_start->format('d') and $x <=$day_end->format('d'))
                 echo "<td class='text-center'>Y</td>";
             else
                  echo "<td class='text-center'>-</td>";

        }echo "</tr>";
        $no++;
          }?>
    </tbody>
</table>

Upvotes: 1

Related Questions