日历中的某天是否有活动

#1 skyzong

有一个活动表:
id
title          活动标题
hdtime    活动时间
content  活动内容

在调用内面以当月日历的形式显示,哪天有活动在日期上面变色加链接,这个怎么实现????
QQ截图20130624183646.jpg


2013-06-24 18:39:15

#2 jake

我猜你的hdtime是一个时间戳,然后

$month = date("m", hdtime);  是月份
$day = date("d", hdtime); 是日期

然后用if判断日历中的月份和日期是否相等。

另外,或者考虑更容易的方法,在设置活动日期的时候,在数据表中保存两个字段:月份和日期,那么就更容易比对了。

2013-06-24 22:21:13

#3 skyzong

下面是一个日历输出,要求就是在输出日期时把当天有活动的加上活动链接:
function rili(){
    $selectedDay = date( 'd');
    $selectedMonth = date( 'm');
    $selectedYear = date( 'Y');
    $firstday = date( 'w',mktime(0,0,0,$selectedMonth,1,$selectedYear));//获取当月第一天是数值型星期几
    $lastday = 31;//找出本月最后一天
    do {
       $monthOrig = date( 'm',mktime(0,0,0,$selectedMonth,1,$selectedYear));
       $monthTest = date( 'm',mktime(0,0,0,$selectedMonth,$lastday,$selectedYear));
       if ($monthTest != $monthOrig) { $lastday -= 1; }
    } while ($monthTest != $monthOrig);
    $monthName = date( 'F',mktime(0,0,0,$selectedMonth,1,$selectedYear));//获取当月对应的英文名
    $days = array("SUN","MON","TUE","WED","THU","FRI","SAT");//显示日历表头
    $dayRow = 0;
    $output .= "
    ";
        for($i=0; $i<=6; $i++) {
            $output .= "
  • $days[$i]
  • ";
        }
        while($dayRow < $firstday) { //空出当月第一天前面的空位
            $output .= "
  • ";
            $dayRow += 1;
        }
        $day = 0;
        while($day < $lastday) {
            $adjusted_day = $day+1;
            if($adjusted_day==$selectedDay){//当天的日期用红色显示
               $output .= "
  • $adjusted_day
  • ";
            }else{
               $output .= "
  • $adjusted_day
  • ";
            }
           $day += 1;
           $dayRow += 1;
        }
        $output .= "
";
    return $output;
}

2013-06-25 13:32:02

#4 jake

在循环里面直接用 if 来对比。

不好意思,我是对做编程题没什么兴趣。而且也挺不喜欢不自己思考的提问者。

2013-06-25 13:35:48