我有问题。我无法显示工作日。因此,当我单击下一步时,它应该显示下周显示星期一到星期五的星期。当我单击上一个时,它应该在上周的周一至周五显示
这是我的代码
在控制器中
<?php
public function calendar($dt) {
// = date("Y/m/d");
$beginDate = $dt;
$endDate = date("Y-m-d", strtotime($dt . "+6 days"));
$posts = $this->Post->getWeekPosts($beginDate, $endDate);
$members = $this->Post->PostgetUniqueMembers($posts);
// $week = $this->Post->weekNo($beginDate, $endDate);
$this->set("posts", $posts);
$this->set("members", $members);
$this->set("begin", $beginDate);
// $this->set("week", $week);
}
in view
<div id="content">
<span id="calendar-week">
<!-- <h2> week <?php echo $week; ?> <?php echo date("F Y", strtotime($begin)) ?> </h2>-->
<h2> week <?php echo date("F Y", strtotime($begin)) ?> </h2>
<a href="/cakemgmt/posts/calendar/<?php echo date("Y-m-d", strtotime($begin . "- 6 days")) ?>">Previous</a> |
<a href="/cakemgmt/posts/calendar/<?php echo date("Y-m-d", strtotime($begin . "+ 6 days")) ?>">Next</a>
</span>
<div id="calendar">
<table>
<tr id="calendar-names"><!-- member names -->
<td> </td>
<?php foreach ($members as $member) { ?>
<td><p><?php echo $member ?></p></td>
<?php } ?>
</tr>
<?php
foreach ($posts as $key => $post) {
?>
<tr>
<td class="calendar-background-days"><p class="calendar-days"><?php echo date("D", strtotime($key)) ?></p></td>
<?php foreach ($members as $memberKey => $member) { ?>
<td class="calendar-background-content">
<?php foreach ($post as $contentKey => $content) { ?>
<?php if ($contentKey == $memberKey) { ?>
<?php foreach ($content as $c) { ?>
<p><?php echo $c['Post']['content'] ?></p>
<?php } ?>
<?php
}
}
?>
</td>
<?php } ?>
</tr>
<?php } ?>
</table>
</div>
</div>
在模型中
public function getWeekPosts($begin, $end) {
$res = $this->find("all", array("order" => array('deadline', 'member_id'), "conditions" => "deadline BETWEEN '" . $begin . "' AND '" . $end . "'"));
$res = $this->formatWeekPosts($begin, $res);
return $res;
}
public function formatWeekPosts($begin, $res) {
$dt = array();
for ($i = 0; $i < 6; $i++) {
$dt[] = date("Y-m-d", strtotime($begin . "+ " . $i . " days"));
}
$members = array();
$pastMember = "";
foreach ($res as $r) {
if ($pastMember != $r['Post']['member_id']) {
$members[] = $r['Post']['member_id'];
$pastMember = $r['Post']['member_id'];
}
}
$posts = array();
foreach ($dt as $d) {
foreach ($res as $r) {
if ($r['Post']['deadline'] == $d) {
$posts[$d][] = $r;
}
}
}
$sortedPosts = array();
foreach ($members as $member) {
foreach ($posts as $key => $postDate) {
foreach ($postDate as $key2 => $p) {
if ($p["Post"]['member_id'] == $member) {
$sortedPosts[$key][$p["Post"]['member_id']][$key2] = $p;
}
}
}
}
ksort($sortedPosts);
return $sortedPosts;
}
public function PostgetUniqueMembers($posts) {
$members = array();
foreach ($posts as $post) {
foreach ($post as $p) {
$members[$p[key($p)]["Post"]["member_id"]] = $p[key($p)]["Member"]['username'];
}
}
return $members;
}