csdn的blog上面的日历都是用javascript实现的, 你可以看一下,他们的页面的源代码,你把里面的javascript部分copy过来就可以用了,

解决方案 »

  1.   

    日期做个连接就可以了。没有日记就显示无或者header到首页。我想。
      

  2.   

    <?php 
    //写到:假如当日有写日记,就给当日一个<a>连接,方便打开<====有思路,但没有写出来 
    ?> 
    <?php 
    //<-------处理通过GET方法提交的变量;开始--------> 
    if($HTTP_GET_VARS[year]=="") 

      $HTTP_GET_VARS[year]=date("Y"); 

    if($HTTP_GET_VARS[month]=="") 

      $HTTP_GET_VARS[month]=date("n"); 

    $month=$HTTP_GET_VARS[month]; 
    $year=$HTTP_GET_VARS[year]; 
    //<-------处理通过GET方法提交的变量;结束--------> 
    if($year<1971) 

      echo "出错!"; 
      echo "<BR>"; 
      echo "<a href=$HTTP_SERVER_VARS[PHP_SELF]>Back</a>"; 
      exit(); 

    ?> 
    <table width="200" border="1" cellspacing="0" cellpadding="0" bordercolor="#E7E7E7" style="font-size:12px;"> 
    <tr align="center"><td colspan="2"> 
    <?php 
    //<-------当月份超出1至12时的处理;开始-------> 
    if($month<1) 

      $month=12; 
      $year-=1; 

    if($month>12) 

      $month=1; 
      $year+=1; 

    //<-------当月份超出1至12时的处理;结束-------> 
    //*************************************** 
    //<---------上一年,下一年,上月,下月的连接处理及输出;开始---------> 
    echo "<a href=$HTTP_SERVER_VARS[PHP_SELF]?year=".($year-1)."&month=".$month.">&lt;&lt;</a>年<a href=$HTTP_SERVER_VARS[PHP_SELF]?year=".($year+1)."&month=".$month.">&gt;&gt;</a>";?> 
    </td><td colspan="3"><?php echo $year."年".$month."月";?> 
    </td><td colspan="2"><?php echo "<a href=$HTTP_SERVER_VARS[PHP_SELF]?month=".($month-1)."&year=".$year.">&lt;&lt;</a>月<a href=$HTTP_SERVER_VARS[PHP_SELF]?month=".($month+1)."&year=".$year.">&gt;&gt;</a>"; 
    //<--------上一年,下一年,上月,下月的连接处理及输出;结束---------> 
     ?></td></tr> 
     <tr align=center><td><font color="red">日</font></td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr><tr> 
    <?php 
    $d=date("d"); 
    $FirstDay=date("w",mktime(0,0,0,$month,1,$year));//取得任何一个月的一号是星期几,用于计算一号是由表格的第几格开始 
    $bgtoday=date("d"); 
    function font_color($month,$today,$year)//用于计算星期天的字体颜色 

      $sunday=date("w",mktime(0,0,0,$month,$today,$year)); 
      if($sunday=="0") 
      { 
      $FontColor="red"; 
      } 
      else 
      { 
      $FontColor="black"; 
      } 
      return $FontColor; 

    function bgcolor($month,$bgtoday,$today_i,$year)//用于计算当日的背景颜色 

      $show_today=date("d",mktime(0,0,0,$month,$today_i,$year)); 
      $sys_today=date("d",mktime(0,0,0,$month,$bgtoday,$year)); 
      if($show_today==$sys_today) 
      { 
      $bgcolor="bgcolor=#6699FF"; 
      } 
      else 
      { 
      $bgcolor=""; 
      } 
      return $bgcolor; 

    function font_style($month,$today,$year)//用于计算星期天的字体风格 

      $sunday=date("w",mktime(0,0,0,$month,$today,$year)); 
      if($sunday=="0") 
      { 
      $FontStyle="<strong>"; 
      } 
      else 
      { 
      $FontStyle=""; 
      } 
      return $FontStyle; 

    for($i=0;$i<=$FirstDay;$i++)//此for用于输出某个月的一号位置 

      for($i;$i<$FirstDay;$i++) 
      { 
      echo "<td align=center>&nbsp;</td>\n"; 
      } 
      if($i==$FirstDay) 
      { 
      echo "<td align=center ".bgcolor($month,$bgtoday,1,$year)."><font color=".font_color($month,1,$year).">".font_style($month,1,$year)."1</font></td>\n"; 
      if($FirstDay==6)//判断1号是否星期六 
      { 
      echo "</tr>"; 
      } 
      } 

    $countMonth=date("t",mktime(0,0,0,$month,1,$year));//某月的总天数 
    for($i=2;$i<=$countMonth;$i++)//输出由1号定位,随后2号直至月尾的所有号数 

      echo "<td align=center ".bgcolor($month,$bgtoday,$i,$year)."><font color=".font_color($month,$i,$year).">".font_style($month,$i,$year)."$i</font></td>\n"; 
      if(date("w",mktime(0,0,0,$month,$i,$year))==6)//判断该日是否星期六 
      { 
      echo "</tr>\n"; 
      } 
    } ?> 
    </table> 
      

  3.   

    查询数据库还是必要的!<?php
    //日历模板,你可以修改他的样式
    $tpl = <<< TEXT
    <table border>
    <tr><th>日</th><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th></tr>
    <colgroup align=right style='color:red'>
    <colgroup align=right span=6>
    __ROW__
    </table>
    TEXT;//其他不易写入模板的参数
    $info = array(
    'sp' => '<td>&nbsp;</td>' /*空单元,若希望空单元不显示边框可写做<td></td>*/,
    'today' => 'lime' /*今天的字色*/,
    'blog' => 'fuchsia' /*有链接时的背景色*/,
    /*链接表*/
    'lines' => array(
    15 => 'test' /*日 => 目标*/,
    ),
    );function date_box($yyyy,$mm,$template,$info) {
    $sp = $info['sp'];
    $date = strtotime("$yyyy-$mm-01"); //从传入的年月创建unix时间戳
    $w = date('w',$date); //1号是星期几
    $t = date('t',$date); //该月天数
    $a1 = $w ? array_fill(0,$w,$sp) : array(); //可能存在的前导空格
    $a2 = range(1,$t); //日期数组
    $j = date("j"); //当前日
    foreach($a2 as $k=>$v) {
    if($v == $j)
    $v = "<font color=$info[today]>$v</font>"; //设置当前日的颜色
    if(isset($info[lines][$v]))
    $a2[$k] = "<td bgcolor='$info[blog]'><a href='{$info[lines][$v]}'>$v</a></td>";
    else
    $a2[$k] = "<td>$v</td>";
    }
    $a3 = (7-($w+$t)%7)%7 ? array_fill(0,(7-($w+$t)%7)%7,$sp) : array(); //补齐尾部
    $a = array_merge($a1,$a2,$a3); //组装成临时数组
    $ar = array_chunk($a,7); //拆分临时数组到目标数组,7个单元为一组
    foreach($ar as $v)
    $s .= "<tr>".join("",$v)."</tr>\n";
    return str_replace("__ROW__",$s,$template);
    }
    echo date_box(2005,1,$tpl,$info);
    ?>