$m_1st = date("w",strtotime(date("Y-m-1")));//得到这月1日是星期几
$m_days = date("t");//得到此月天数
echo "一 二 三 四 五 六 日\n";
if ($m_1st<=0) $m_1st=7;
for($i=2-$m_1st,$k=1;$i<=$m_days;$i++,$k++) {
  if($i<1) echo " ";
  else {
    echo $i," ";
    if($k%7==0) echo "\n";
  }
}

解决方案 »

  1.   

    to xuzuning(唠叨)
    前面几个星期的星期日后面都多了一个tab唉,这种小程序似乎再简练也简练不到哪里去了,呵呵
      

  2.   

    <?
    function build_calendar_table($year=0,$month=0,$day=0)
    {
    global $PHP_SELF;
    $year=$_GET['year'];
    $month=$_GET['month'];

    $cal="";
    if($year==0) $year=date('Y')+0;
    if($month==0) $month=date('m')+0;
    if($day==0) $day=date('d')+0;

    $pyear=($month==1?$year-1:$year);
    $pmonth=($month==1?12:$month-1);

    $nyear=($month==12?$year+1:$year);
    $nmonth=($month==12?1:$month+1);

    $firstday=mktime(0,0,0,$month,1,$year);
    $skip=date('w',$firstday);
    $dim=date('t',$firstday);
    $rows=ceil(($skip+$dim)/7);

    $cal.="\n<table width=190 border=0 cellpadding=1 cellspacing=1 align=center style='font-size: 11px;font-family: Verdana;color:#000099'>";
    $cal.="\n<tr><td colspan=7 align=center>";
    $cal.="<a href=".$PHP_SELF."?year=".$pyear."&month=".$pmonth.">Last Month</a>&nbsp;";
    $cal.=$year."/".$month;
    $cal.="&nbsp;<a href=".$PHP_SELF."?year=".$nyear."&month=".$nmonth.">Next Month<a>&nbsp;";
    $cal.="\n</td></tr>";
    $cal.="\n<tr align=center>";
    $cal.="\n<td>Sun</td><td>Mon</td><td>Tue</td><td>Wen</td><td>Thu</td><td>Fri</td><td>Sat</td>";
    $cal.="\n</tr>";

    for($row=0;$row<$rows;$row++)
    {
    $cal.="\n<tr align=center>";
    for($col=0;$col<7;$col++)
    {
    $cur=$row*7+$col-$skip+1;
    $cal.="\n<td";
    if($year==(int)date('Y')&&$month==(int)date('m')&&$cur==(int)date('d'))
    $cal.=" bgcolor=#EBEBEB";
    $cal.=">";
    if($row*7+$col<$skip)
    $cal.="&nbsp;";
    else
    {
    if($cur>$dim)
    $cal.='&nbsp;';
    else
    {
    if($year==(int)date('Y')&&$month==(int)date('m')&&$cur==$day)
    $cal.="<b>";
    $this_time=$year."-".$month."-".$cur;
    $url_msg="newslist.php?this_time=".$this_time;
    $cal.=$cur;
    if($year==(int)date('Y')&&$month==(int)date('m')&&$cur==$day)
    $cal.="</b>";
    }
    }
    $cal.="</td>";
    }
    $cal.="\n</tr>";
    }
    $cal.="\n</table>";
    echo $cal;
    }build_calendar_table();
    ?>
      

  3.   

    那倒是,只是学术上的探讨。$m_1st = date("w",strtotime(date("Y-m-1")));//得到这月1日是星期几
    $m_days = date("t");//得到此月天数
    echo "一 二 三 四 五 六 日\n";
    if ($m_1st<=0) $m_1st=7;
    for($i=2-$m_1st,$k=1;$i<=$m_days;$i++,$k++) {
      if($i<1) echo " ";
      else echo $i,$k%7?" ":"\n";
    }
      

  4.   

    function changeweek($tmp_years,$tmp_months,$tmp_days){
               $tmp_time=mktime(0,0,0,$tmp_months,$tmp_days,$tmp_years);
               $tmp_month=date("w",$tmp_time);
               return $tmp_month;
      }  function cl_text($widths,$dates){
               $calendar_text="<table border=0 width=".$widths." cellpadding=0 cellspacing=0 align=center><tr><td bgcolor=000000>";
               $calendar_text.="<table border=0 width=100% cellpadding=0 cellspacing=1>";
               $calendar_text.="<tr bgcolor=3f45ff align=middle><td colspan=7 class=p1>".date("Y年n月")."</td></tr>";
               $calendar_text.="<tr bgcolor=fec9b4 align=middle><td colspan=7><table border=0 cellpadding=0 cellspacing=0 width=100%><tr align=middle><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr></table></td></tr>";
               $calendar_text.="<tr bgcolor=f1f1f1><td colspan=7><table border=0 width=100%>";
               $year=date("Y");
               $month=date("m");
               $month_first_week=changeweek($year,$month,1);
               //填充前面几个空余的星期格
               for($i=0;$i<$month_first_week;$i++){
                   if($i==0){
                      $calendar_text.="<tr bgcolor=f1f1f1 align=middle>";
                   }
                   $calendar_text.="<td>&nbsp;</td>";
               }
               for($i=1;$i<=date("t");$i++){
                   $month_some=changeweek($year,$month,$i);
                   if($month_some==0){
                      $calendar_text.="<tr bgcolor=f1f1f1 align=middle>";
                   }
                   $calendar_text.="<td";
                   if($i==date("j")){
                      $calendar_text.=" bgcolor=cacec1";
                   }
                   $calendar_text.=">";
                   $tmp_date=$i;
                   if(@in_array($tmp_date,$dates)){
                      $calendar_text.="<font color=red>";
                   }
                   $calendar_text.=$i;
                   if(@in_array($tmp_date,$dates)){
                      $calendar_text.="</font>";
                   }
                   $calendar_text.="</td>";
                   if($month_some==6){
                      $calendar_text.="</tr>";
                   }
               }
               //填充后面几个空余的星期格
               for($i=$month_some+1;$i<=6;$i++){
                   $calendar_text.="<td>&nbsp;</td>";
                   if($i==6){
                      $calendar_text.="</tr>";
                   }
               }
               $calendar_text.="</table></td></tr>";
               $calendar_text.="</table>";
               $calendar_text.="</td></tr></table>";           return $calendar_text;
      }  $starttime=date("Y-m")."-01 00:00:00";
      $overtime=date("Y-m-t")." 23:59:59";  $dates[]=array(1,10,30);  $nr=cl_text(165,$dates);
      echo $nr;