#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. Это даст вам те строки, которые вам нужно раскрасить.