php实现日历功能,需要用到两个函数,date和mktime,首先需要弄明白这个月的第一天是哪一天(就从第一周的星期几开始的),确定好起点,然后需要确定好当月的天数,有了这个两个就好办了,就可以通过他们构成以一个二维数组了,代码如下

function canlendar(){
    $cuurrent_day = date('j');//月份中的第几天
    $month = date('n');
    $year = date('Y');
    $day_num = date('t',mktime(0,0,0,$month,1,$year));//该月所具有的天数
    $first_day = date('w',mktime(0,0,0,$month,1,$year));//该月第一天是一周中的第几天
    $row = ceil(($first_day+$day_num)/7);//日历行数
    $count = 0;//计算器
    
    //然后就可以开始遍历构建二维数组了
    for($i=0;$<$row;$i++){
        for($j=0;$j<7;$j++){
            $count++;
            $arr[$i][$j] = $count;
            $arr[$i][$j] -= $first_day;
            
            if($arr[$i][$j] < 0 || $arr[$i][$j]>$day_num){
                $arr[$i][$j] = '';//上个月或下个月的不与显示
            }
        }
    }
    return $arr
}

得到的二维数组用$row行7列的表格打印出来即可