【发布时间】:2011-07-11 08:52:48
【问题描述】:
我正在尝试找出设计“7 天日历”的最佳方法,该日历将包含一个 HTML 表格,其中包含“姓名、星期日、星期一、星期二、星期三、星期四、星期五、星期六”列。 HTML 表格行将填充我数据库中的数据,即。姓名将有一个人的姓名,周日将显示该人周日需要做什么,即“刷牙”等。它与事件日历非常相似,除了我想要完成的不需要每小时视图,只是一个简单的 7 天,周日到周六的视图。
我的数据库目前由“名称、事件详细信息和事件日期”组成。
我的 HTML 表格列由“名称 - 星期日 - 星期一 - 星期二 - ...”列组成
我的逻辑:每次页面加载时,脚本都会查询数据库并查看是否有任何 EventDate 条目等于当前正在查看的一周中的 7 天之一。如果 EventDate 匹配,它将在与该日期的相应 HTML 表列匹配的行中列出自己。单击“上一周”或“下周”将更改为另一周并应重新启动脚本,但这次它将使用不同的日期列表进行检查。
有人愿意分享一些他们可以想出什么来实现这一目标的例子吗?
到目前为止,这是我想出的...问题在于,如果一个人下有多个事件,它会为每个事件创建一个新行,而我正在努力将其列出每个事件排成一行。
<table border='1'>
<tr>
<th>Name</th>
<th>Sunday</th>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
<th>Saturday</th>
</tr>
<?php
function getCurrentWeek()
{
$weekArray = array();
// set the current date
$date = date("m/d/Y"); //'03/08/2011';
$ts = strtotime( $date );
// calculate the number of days since Monday
$dow = date('w', $ts);
$offset = $dow - 0;
if ($offset < 0) $offset = 6;
// calculate timestamp for the Monday
$ts = $ts - $offset*86400;
// loop from Monday till Sunday
for ($i=0; $i<7; $i++, $ts+=86400){
$temp_date = date("Y-m-d", $ts); // Reformat the dates to match the database
array_push( $weekArray, $temp_date );
}
return($weekArray);
}
$currentWeek = getCurrentWeek();
// Loop through the data array
while($row = mysql_fetch_array($result)){
$eventDate= $row['EventDate'];
// Loop through the currentWeek array to match a date from the database from a date in the current week
foreach ($currentWeek as $weekDay){
// If there is a matching date...
if ($eventDate == $weekDay) {
echo "<tr><td>".$row['Name']."</td>";
foreach ($currentWeek as $weekDay2){
if ($eventDate == $weekDay2)
echo "<td>".$row['EventName']."</td>";
else
echo "<td></td>";
}
echo "</tr>";
}
}
}
?>
</table>
【问题讨论】:
-
你写过代码吗?既然有大量免费的 PHP 日历脚本,你为什么要从头开始编写这个?
-
我已经包含了到目前为止的内容。另外,我不想只是复制和粘贴已经存在的内容,因为这对我来说不是什么学习经验。我只是从这个开始。
-
无关:在编辑队列中,我遇到了一个您在分类中投票的问题。你在那里做了错误的选择。请:仔细研究分类帮助,避免将不属于那里的项目放入编辑队列。请理解您的投票有后果!我特指stackoverflow.com/review/triage/20908294。那应该因为不清楚/或没有 MCVE 而被关闭。只有 OP 才能合理地编辑它!如果您对我有其他问题或反馈,请随时给我留言。
标签: php javascript mysql ajax pagination