Hướng dẫn php display weekly calendar - php hiển thị lịch hàng tuần

Tôi đã viết chỉ một cái như vậy với PHP5 + AJAX (nếu bạn cần sử dụng nó):

first_day_of_week = $atts['first_day_of_week'];
        }

        if (!isset($atts['year'])) {
            $this->current_year = date('Y');
        } else {
            $this->current_year = $atts['year'];
        }

        if (!isset($atts['month'])) {
            $this->current_month = date('m');
        } else {
            $this->current_month = $atts['month'];
        }

        if (!isset($atts['day'])) {
            $this->current_day = date('d');
        } else {
            $this->current_day = $atts['day'];
        }
        //***
        if (isset($atts['show_year_selector'])) {
            $this->show_year_selector = $atts['show_year_selector'];
        }

        if (isset($atts['show_month_selector'])) {
            $this->show_month_selector = $atts['show_month_selector'];
        }

        if (isset($atts['min_select_year'])) {
            $this->min_select_year = $atts['min_select_year'];
        }

        if (isset($atts['max_select_year'])) {
            $this->max_select_year = $atts['max_select_year'];
        }
    }

    /*
     * Month calendar drawing
     */

    public function draw($data = array(), $y = 0, $m = 0) {
        //***
        if ($m == 0 AND $m == 0) {
            $y = $this->current_year;
            $m = $this->current_month;
        }
        //***
        $data['week_days_names'] = $this->get_week_days_names(true);
        $data['cells'] = $this->generate_calendar_cells($y, $m);
        $data['month_name'] = $this->get_month_name($m);
        $data['year'] = $y;
        $data['month'] = $m;
        return $this->draw_html('calendar', $data);
    }

    private function generate_calendar_cells($y, $m) {
        $y = intval($y);
        $m = intval($m);
        //***
        $first_week_day_in_month = date('w', mktime(0, 0, 0, $m, 1, $y)); //from 0 (sunday) to 6 (saturday)
        $days_count = $this->get_days_count_in_month($y, $m);
        $cells = array();
        //***
        if ($this->first_day_of_week == $first_week_day_in_month) {
            for ($d = 1; $d <= $days_count; $d++) {
                $cells[] = new PN_CalendarCell($y, $m, $d);
            }
            //***
            $cal_cells_left = 5 * 7 - $days_count;
            $next_month_data = $this->get_next_month($y, $m);
            for ($d = 1; $d <= $cal_cells_left; $d++) {
                $cells[] = new PN_CalendarCell($next_month_data['y'], $next_month_data['m'], $d, false);
            }
        } else {
            //***
            if ($this->first_day_of_week == 0) {
                $cal_cells_prev = 6 - (7 - $first_week_day_in_month); //checked, is right
            } else {
                if ($first_week_day_in_month == 1) {
                    $cal_cells_prev = 0;
                } else {
                    if ($first_week_day_in_month == 0) {
                        $cal_cells_prev = 6 - 1;
                    } else {
                        $cal_cells_prev = 6 - (7 - $first_week_day_in_month) - 1;
                    }
                }
            }
            //***
            $prev_month_data = $this->get_prev_month($y, $m);
            $prev_month_days_count = $this->get_days_count_in_month($prev_month_data['y'], $prev_month_data['m']);

            for ($d = $prev_month_days_count - $cal_cells_prev; $d <= $prev_month_days_count; $d++) {
                $cells[] = new PN_CalendarCell($prev_month_data['y'], $prev_month_data['m'], $d, false);
            }

            //***
            for ($d = 1; $d <= $days_count; $d++) {
                $cells[] = new PN_CalendarCell($y, $m, $d);
            }
            //***
            //35(7*5) or 42(7*6) cells
            $busy_cells = $cal_cells_prev + $days_count;
            $cal_cells_left = 0;
            if ($busy_cells < 35) {
                $cal_cells_left = 35 - $busy_cells - 1;
            } else {
                $cal_cells_left = 42 - $busy_cells - 1;
            }
            //***
            if ($cal_cells_left > 0) {
                $next_month_data = $this->get_next_month($y, $m);
                for ($d = 1; $d <= $cal_cells_left; $d++) {
                    $cells[] = new PN_CalendarCell($next_month_data['y'], $next_month_data['m'], $d, false);
                }
            }
        }
        //***
        return $cells;
    }

    public function get_next_month($y, $m) {
        $y = intval($y);
        $m = intval($m);

        //***
        $m++;
        if ($m % 13 == 0 OR $m > 12) {
            $y++;
            $m = 1;
        }

        return array('y' => $y, 'm' => $m);
    }

    public function get_prev_month($y, $m) {
        $y = intval($y);
        $m = intval($m);

        //***
        $m--;
        if ($m <= 0) {
            $y--;
            $m = 12;
        }

        return array('y' => $y, 'm' => $m);
    }

    public function get_days_count_in_month($year, $month) {
        return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
    }

    public static function get_month_name($m) {
        $names = self::get_monthes_names();
        return $names[intval($m)];
    }

    public function get_week_day_name($num, $shortly = false) {
        $names = $this->get_week_days_names($shortly);
        return $names[intval($num)];
    }

    public function get_week_days_names($shortly = false) {
        if ($this->first_day_of_week == 1) {
            if ($shortly) {
                return array(
                    1 => 'Mo',
                    2 => 'Tu',
                    3 => 'We',
                    4 => 'Th',
                    5 => 'Fr',
                    6 => 'Sa',
                    7 => 'Su'
                );
            }

            return array(
                1 => 'Monday',
                2 => 'Tuesday',
                3 => 'Wednesday',
                4 => 'Thursday',
                5 => 'Friday',
                6 => 'Saturday',
                7 => 'Sunday'
            );
        } else {
            if ($shortly) {
                return array(
                    0 => 'Su',
                    1 => 'Mo',
                    2 => 'Tu',
                    3 => 'We',
                    4 => 'Th',
                    5 => 'Fr',
                    6 => 'Sa'
                );
            }

            return array(
                0 => 'Sunday',
                1 => 'Monday',
                2 => 'Tuesday',
                3 => 'Wednesday',
                4 => 'Thursday',
                5 => 'Friday',
                6 => 'Saturday'
            );
        }
    }

    public static function get_monthes_names() {
        return array(
            1 => 'January',
            2 => 'February',
            3 => 'March',
            4 => 'April',
            5 => 'May',
            6 => 'June',
            7 => 'July',
            8 => 'August',
            9 => 'September',
            10 => 'October',
            11 => 'November',
            12 => 'December'
        );
    }

    public function draw_html($view, $data = array()) {
        @extract($data);
        ob_start();
        include('views/' . $view . '.php' );
        return ob_get_clean();
    }

    }


class PN_CalendarCell {

    public $cell_year = null;
    public $cell_month = null;
    public $cell_day = null;
    public $in_current_month = true;

    public function __construct($y, $m, $d, $in_current_month = true) {
        $this->cell_year = $y;
        $this->cell_month = $m;
        $this->cell_day = $d;
        $this->in_current_month = $in_current_month;
    }

    public function get_week_day_num() {
        return date('w', mktime(0, 0, 0, $this->cell_month, $this->cell_day, $this->cell_year)); //from 0 (sunday) to 6 (saturday);
    }

    public function draw($events) {
        $this_day_events = 0;
        if (is_array($events)) {
            if (isset($events[$this->cell_year][$this->cell_month][$this->cell_day])) {
                $this_day_events = count($events[$this->cell_year][$this->cell_month][$this->cell_day]);
            }
        } else {
            $events = array();
        }
        ?>

        style="display: none;">
        cell_day ?>
    }

}

Gọi kịch bản:

draw();
?>

Tải xuống tập lệnh với bản demo: http://pluginus.net/archives/simple-free-open-source-ajax-php-calendar-cl: http://pluginus.net/archives/simple-free-open-source-ajax-php-calendar-script

Bản demo: http://demo.pluginus.net/calendar/: http://demo.pluginus.net/calendar/

Làm thế nào để làm lịch bằng PHP?

Đầu tiên sao chép mã nguồn bên dưới vào tệp lớp "Lịch.php".Chúng tôi sẽ đi qua từng chức năng quan trọng.Lớp "Lịch" này là một đối tượng hoàn chỉnh, sẽ lặp lại lịch HTML khi gọi hàm "show ()" của nó.copy the source code below to a class file "calendar. php". We will go through each important function. This "Calendar" class is a complete object, which will echo a HTML calendar upon calling its "show()" function.

Làm thế nào để tạo một lịch sự kiện động trong PHP?

Tạo lịch sự kiện bằng JQuery, PHP và MySQL:..

Bước 1: Tạo một tệp để hiển thị lịch.Đầu tiên tạo một chỉ mục.....

Bước 2: Tạo bảng MySQL để lưu các sự kiện động.....

Bước 3: Tạo kết nối cơ sở dữ liệu.....

Bước 4: Tạo hoạt động CRUD bằng cách sử dụng jQuery ..