【发布时间】:2018-10-06 13:12:57
【问题描述】:
我刚刚设置了一个简单的 PHP 脚本,它根据今天的日期回显 10 周,向前 5 周,向后 5 周。
第一个<TR> 就像一个魅力,它呼应了所有<TD> 和相应的星期数。问题是我希望它在多行中回显周数,然后查找该周报告的小时数。我怎么可能从第一个 <TR> 复制 <TD> 的数量并在每一行中保留 $from 的值,以便我可以在以后计算那一周的小时数?
当前输出:
-------------------------------------------------------------------------
/ ******* / W10 / W11 / W12 / W13 / W14 / W15 / W16 / W17 / W18 / W19 /
-------------------------------------------------------------------------
/ PROJECT 1 /
-------------------------------------------------------------------------
我想得到的输出:
[-5 WEEKS] / [+5 WEEKS]
-------------------------------------------------------------------------
/ ******* / W10 / W11 / W12 / W13 / W14 / W15 / W16 / W17 / W18 / W19 /
-------------------------------------------------------------------------
/ PROJECT 1 / 1h / 4h / 1h / 4h / 3h / 8h / 3h / 4h / 1h / 8h /
-------------------------------------------------------------------------
/ PROJECT 2 / 4h / 2h / 2h / 1h / 8h / 3h / 8h / 3h / 4h / 7h /
-------------------------------------------------------------------------
/ PROJECT 3 / 1h / 3h / 4h / 1h / 5h / 2h / 7h / 1h / 7h / 5h /
-------------------------------------------------------------------------
我的代码:
<?php
//Get current date, and go 5w forward
$now = new DateTime;
$now->modify("+5 week");
//Get current date, and go 5w backward
$from = new DateTime;
$from->modify("-5 week");
$from->modify("thursday this week"); // see ISO 8601
echo '<table class="view-calendar" cellspacing="0" cellpadding="0" border="0">';
echo '<tbody>';
//The first row with week numbers
echo '<tr>';
echo '<td style="background: #f2f2f2">';
echo '';
echo '</td>';
while($from < $now) {
echo '<td valign="top">';
echo 'v'.$from->format('W');
echo '</td>';
$from->modify("+1 week");
}
echo '</tr>';
//The rest of the rows with project hours in each column
echo '<tr>';
echo '<td>';
echo 'Project 1';
echo '</td>';
// ECHO THE REST OF <TD> based on week from first row
echo '</tr>';
echo '</tbody>';
echo '</table>';
?>
【问题讨论】:
-
数据“Project 1”和“1h”从何而来,以什么形式出现?
-
@Jeff:现在只能手动输入,以后应该是来自sql。
-
基本上你只需要退回
$from并再次循环。其余的取决于实际数据的样子。理想情况下,您应该有一个二维数组$projects['id']['weeknumber'] = $hours,这样可以根据循环中的周数轻松获取数据。 -
@Jeff,真的!试过了,它有效。您希望它成为解决方案吗?然后把它作为一个帖子,我会把它标记为完成!
标签: php