PHP日历从星期一开始(偏移量)

PHP日历从星期一开始(偏移量),php,calendar,offset,Php,Calendar,Offset,我正在为日历创建一个类,在这个类中我创建了简单的月份预览 问题:如何以周一开始一周(或抵消) 下面是它的样子: 如图所示,本周从周日开始。我想从星期一开始 以下是我到目前为止得到的信息: 代码: <?php class Calendar { public function __construct($year = '', $month = '') { $date = time(); if (empty($year) OR empty($mon

我正在为日历创建一个类,在这个类中我创建了简单的月份预览

问题:如何以周一开始一周(或抵消

下面是它的样子:


如图所示,本周从周日开始。我想从星期一开始

以下是我到目前为止得到的信息:

代码:

<?php

class Calendar {

    public function __construct($year = '', $month = '') {

        $date = time();

        if (empty($year) OR empty($month)) {
            $year = date('Y', $date);
            $month = date('m', $date);
            $day = date('d', $date);
        }

        $first_day = mktime(0, 0, 0, $month, 1, $year);
        $title = date('F', $first_day);
        $day_of_week = date('D', $first_day);

        switch ($day_of_week) {
            case "Sun": $blank = 0;
                break;
            case "Mon": $blank = 1;
                break;
            case "Tue": $blank = 2;
                break;
            case "Wed": $blank = 3;
                break;
            case "Thu": $blank = 4;
                break;
            case "Fri": $blank = 5;
                break;
            case "Sat": $blank = 6;
                break;
        }

        $days_in_month = cal_days_in_month(0, $month, $year);

        echo '<table border=1 width=394>';

        echo '<tr>';
        echo '<th colspan=60>' . $title . ' ' . $year . '</th>';
        echo '</tr>';

        echo '<tr>';
        echo '<td width=62>Sun</td>';
        echo '<td width=62>Mon</td>';
        echo '<td width=62>Tue</td>';
        echo '<td width=62>Wed</td>';
        echo '<td width=62>Thu</td>';
        echo '<td width=62>Fri</td>';
        echo '<td width=62>Sat</td>';
        echo '</tr>';

        $day_count = 1;

        while ($blank > 0) {
            echo '<td></td>';
            $blank = $blank - 1;
            $day_count++;
        }

        $day_num = 1;

        while ($day_num <= $days_in_month) {

            echo '<td>' . $day_num . '</td>';
            $day_num++;
            $day_count++;

            if ($day_count > 7) {
                echo '</tr><tr>';
                $day_count = 1;
            }
        }

        while ($day_count > 1 && $day_count <= 7) {
            echo '<td> </td>';
            $day_count++;
        }

        echo '</tr>';

        echo '</table>';
    }

}

$c = new Calendar(2014, 6);

尝试以下方法:

class Calendar {

    public function __construct($year = '', $month = '') {

        $date = time();

        if (empty($year) OR empty($month)) {
            $year = date('Y', $date);
            $month = date('m', $date);
            $day = date('d', $date);
        }

        $first_day = mktime(0, 0, 0, $month, 1, $year);
        $title = date('F', $first_day);
        $day_of_week = date('D', $first_day);

         switch ($day_of_week) {
            case "Mon": $blank = 0;
                break;
            case "Tue": $blank = 1;
                break;
            case "Wed": $blank = 2;
                break;
            case "Thu": $blank = 3;
                break;
            case "Fri": $blank = 4;
                break;
            case "Sat": $blank = 5;
                break;
            case "Sun": $blank = 6;
                break;
        }

        $days_in_month = cal_days_in_month(0, $month, $year);

        echo '<table border=1 width=394>';

        echo '<tr>';
        echo '<th colspan=60>' . $title . ' ' . $year . '</th>';
        echo '</tr>';

        echo '<tr>';
        echo '<td width=62>Mon</td>';
        echo '<td width=62>Tue</td>';
        echo '<td width=62>Wed</td>';
        echo '<td width=62>Thu</td>';
        echo '<td width=62>Fri</td>';
        echo '<td width=62>Sat</td>';
        echo '<td width=62>Sun</td>';
        echo '</tr>';

        $day_count = 1;

        while ($blank > 0) {
            echo '<td></td>';
            $blank = $blank - 1;
            $day_count++;
        }

        $day_num = 1;

        while ($day_num <= $days_in_month) {

            echo '<td>' . $day_num . '</td>';
            $day_num++;
            $day_count++;

            if ($day_count > 7) {
                echo '</tr><tr>';
                $day_count = 1;
            }
        }

        while ($day_count > 1 && $day_count <= 7) {
            echo '<td> </td>';
            $day_count++;
        }

        echo '</tr>';

        echo '</table>';
    }

}

$c = new Calendar(2014, 6);
课程日历{
公共函数构造($year='',$month=''){
$date=time();
如果(空($year)或空($month)){
$year=日期('Y',$date);
$month=日期('m',$date);
$day=日期('d',$date);
}
$first_day=mktime(0,0,0,$month,1,$year);
$title=日期('F',$first_day);
$day\u of_week=日期('D',$first\u day);
交换机($day\u of\ u week){
案例“Mon”:$blank=0;
打破
案例“Tue”:$blank=1;
打破
案例“Wed”:$blank=2;
打破
案例“Thu”:$blank=3;
打破
案例“Fri”:$blank=4;
打破
案例“Sat”:$blank=5;
打破
案例“Sun”:$blank=6;
打破
}
$days_in_month=cal_days_in_month(0,$month,$year);
回声';
回声';
回音“.$title.”.$year.”;
回声';
回声';
回音“Mon”;
回声“星期二”;
回音“Wed”;
回声“Thu”;
回声“Fri”;
回声“Sat”;
呼应‘太阳’;
回声';
$day_count=1;
而($blank>0){
回声';
$blank=$blank-1;
$day_count++;
}
$day_num=1;
而($day_num 7){
回声';
$day_count=1;
}
}

虽然($day_count>1&&$day_count)您能详细说明您的要求吗?如图所示,一周从星期天开始。我想从星期一开始。格式化一点您的代码,
print_array($first_day);