我尝试创建一个包含一个月内日期列的表格,我想尝试将我拥有的日期输入到表格中,但我不明白它的逻辑..
<?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>
您可以使用
date_create
获取日期,请参阅下面的工作代码:
<?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>