Hướng dẫn how to create php calendar? - làm thế nào để tạo lịch php?

  • Cách xây dựng lịch web trong PHP
    • Xây dựng lớp Lịch
    • Làm cho nó đẹp hơn
    • 3. Mã nguồn cuối cùng và nguồn

Lịch là một yếu tố rất phổ biến trong các ứng dụng web ngày nay. Cho dù bạn đang xây dựng một ứng dụng đặt phòng sự kiện, hệ thống hẹn hoặc thậm chí là một mạng xã hội. Lịch là điều cần thiết.

Trong hướng dẫn này, chúng tôi trải qua các bước xây dựng lịch trong PHP. Sau hướng dẫn này, hy vọng bạn sẽ hiểu các khái niệm về lịch xây dựng và sử dụng tập lệnh lịch PHP trong ứng dụng của riêng bạn.

Xây dựng lớp Lịch

Đầ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ó. Điều hướng tháng cũng được xử lý. Điều này làm cho nó siêu tiện dụng để sử dụng.

php
class Calendar {  
     
    /**
     * Constructor
     */
    public function __construct(){     
        $this->naviHref = htmlentities($_SERVER['PHP_SELF']);
    }
     
    /********************* PROPERTY ********************/  
    private $dayLabels = array("Mon","Tue","Wed","Thu","Fri","Sat","Sun");
     
    private $currentYear=0;
     
    private $currentMonth=0;
     
    private $currentDay=0;
     
    private $currentDate=null;
     
    private $daysInMonth=0;
     
    private $naviHref= null;
     
    /********************* PUBLIC **********************/  
        
    /**
    * print out the calendar
    */
    public function show() {
        $year  = null;
         
        $month = null;
         
        if(null==$year&&isset($_GET['year'])){
 
            $year = $_GET['year'];
         
        }else if(null==$year){
 
            $year = date("Y",time());  
         
        }          
         
        if(null==$month&&isset($_GET['month'])){
 
            $month = $_GET['month'];
         
        }else if(null==$month){
 
            $month = date("m",time());
         
        }                  
         
        $this->currentYear=$year;
         
        $this->currentMonth=$month;
         
        $this->daysInMonth=$this->_daysInMonth($month,$year);  
         
        $content='
'. '
'. $this->_createNavi(). '
'
.
'
'. '
    '.$this->_createLabels().'
'
;
$content.='
'
;
$content.='
    '; $weeksInMonth = $this->_weeksInMonth($month,$year); // Create weeks in a month for( $i=0; $i<$weeksInMonth; $i++ ){ //Create days in a week for($j=1;$j<=7;$j++){ $content.=$this->_showDay($i*7+$j); } } $content.='
'
;
$content.='
'
;
$content.='
'
;
$content.='
'
;
return $content; } /********************* PRIVATE **********************/ /** * create the li element for ul */ private function _showDay($cellNumber){ if($this->currentDay==0){ $firstDayOfTheWeek = date('N',strtotime($this->currentYear.'-'.$this->currentMonth.'-01')); if(intval($cellNumber) == intval($firstDayOfTheWeek)){ $this->currentDay=1; } } if( ($this->currentDay!=0)&&($this->currentDay<=$this->daysInMonth) ){ $this->currentDate = date('Y-m-d',strtotime($this->currentYear.'-'.$this->currentMonth.'-'.($this->currentDay))); $cellContent = $this->currentDay; $this->currentDay++; }else{ $this->currentDate =null; $cellContent=null; } return '
  • '.$cellContent.'
  • '
    ;
    } /** * create navigation */ private function _createNavi(){ $nextMonth = $this->currentMonth==12?1:intval($this->currentMonth)+1; $nextYear = $this->currentMonth==12?intval($this->currentYear)+1:$this->currentYear; $preMonth = $this->currentMonth==1?12:intval($this->currentMonth)-1; $preYear = $this->currentMonth==1?intval($this->currentYear)-1:$this->currentYear; return '
    '. ''. ''.date('Y M',strtotime($this->currentYear.'-'.$this->currentMonth.'-1')).''. ''. '
    '
    ;
    } /** * create calendar week labels */ private function _createLabels(){ $content=''; foreach($this->dayLabels as $index=>$label){ $content.='
  • '.$label.'
  • '
    ;
    } return $content; } /** * calculate number of weeks in a particular month */ private function _weeksInMonth($month=null,$year=null){ if( null==($year) ) { $year = date("Y",time()); } if(null==($month)) { $month = date("m",time()); } // find number of days in this month $daysInMonths = $this->_daysInMonth($month,$year); $numOfweeks = ($daysInMonths%7==0?0:1) + intval($daysInMonths/7); $monthEndingDay= date('N',strtotime($year.'-'.$month.'-'.$daysInMonths)); $monthStartDay = date('N',strtotime($year.'-'.$month.'-01')); if($monthEndingDay<$monthStartDay){ $numOfweeks++; } return $numOfweeks; } /** * calculate number of days in a particular month */ private function _daysInMonth($month=null,$year=null){ if(null==($year)) $year = date("Y",time()); if(null==($month)) $month = date("m",time()); return date('t',strtotime($year.'-'.$month.'-01')); } }

    Chúng ta hãy xem chi tiết từng chức năng.

    1. ** Hiển thị chức năng công cộng (): ** Đây là lịch chức năng công cộng duy nhất có. Hàm này về cơ bản gọi mỗi hàm riêng bên dưới để tạo giao diện lịch HTML. Ý tưởng cơ bản về việc tạo một lịch web là, trước tiên, nó xác định số lượng hàng (tuần) để tạo, và sau đó nó lặp qua các hàng và tạo 7 ô trên mỗi hàng. Trong khi đó, nó đặt giá trị ban ngày tương ứng cho tế bào theo ngày trong tuần (Thứ Hai đến Chủ Nhật). Hãy xem xét kỹ hơn từng chức năng riêng tư bên dưới để hiểu.
    2. ** Hàm riêng _showday (): ** Hàm này sẽ xác định giá trị nào sẽ đặt cho ô đã tạo. Nó có thể trống hoặc số.
    3. Hàm riêng _createnavi (): Hàm này sẽ tạo các nút điều hướng "Prev" && "Tiếp theo" trên đầu lịch. This function will create the "Prev" && "Next" navigation buttons on the top of the calendar.
    4. Hàm riêng _createlabels (): Hàm này sẽ tạo nhãn cho ngày trong tuần. (Thứ Hai đến Chủ Nhật). Bạn có thể cập nhật chuỗi ngôn ngữ theo lựa chọn của riêng bạn. Nhưng hãy thận trọng. Bạn không nên thay đổi thứ tự của các nhãn. This function will create labels for the day of week. ( Monday to Sunday). You can update the language string to your own choice. But be cautious. You should not change the order of the labels.
    5. Hàm riêng _weeksinmonth (): Đây là một hàm khó. Nó có thể cho bạn biết có bao nhiêu tuần trong một tháng nhất định. Điều này được sử dụng trong hàm show () để tạo số lượng hàng (tuần). This is a tricky function. It can tell you how many weeks are there for a given month. This is used in show() function to create number of rows(weeks).
    6. hàm riêng _daysinmonth (); Chức năng này cho biết bao nhiêu ngày trong một tháng nhất định. This function tells how many days in a given month.

    Các chức năng đang hoạt động chặt chẽ để tạo lịch PHP. Bạn nên làm theo hàm show () để hiểu sâu sắc cách chính xác họ gọi mỗi người. Mã được ghi lại. Hãy cho mình một chút thời gian để đọc nó.

    Làm cho nó đẹp hơn

    Bây giờ lớp lịch thực sự đã sẵn sàng. Tuy nhiên, nó trông lộn xộn mà không có một số thủ thuật CSS. Hãy để chúng tôi tạo tệp CSS "Lịch.CSS" để làm cho lịch trông đẹp.

    /*******************************Calendar Top Navigation*********************************/
    div#calendar{
      margin:0px auto;
      padding:0px;
      width: 602px;
      font-family:Helvetica, "Times New Roman", Times, serif;
    }
     
    div#calendar div.box{
        position:relative;
        top:0px;
        left:0px;
        width:100%;
        height:40px;
        background-color:   #787878 ;      
    }
     
    div#calendar div.header{
        line-height:40px;  
        vertical-align:middle;
        position:absolute;
        left:11px;
        top:0px;
        width:582px;
        height:40px;   
        text-align:center;
    }
     
    div#calendar div.header a.prev,div#calendar div.header a.next{ 
        position:absolute;
        top:0px;   
        height: 17px;
        display:block;
        cursor:pointer;
        text-decoration:none;
        color:#FFF;
    }
     
    div#calendar div.header span.title{
        color:#FFF;
        font-size:18px;
    }
     
     
    div#calendar div.header a.prev{
        left:0px;
    }
     
    div#calendar div.header a.next{
        right:0px;
    }
     
     
     
     
    /*******************************Calendar Content Cells*********************************/
    div#calendar div.box-content{
        border:1px solid #787878 ;
        border-top:none;
    }
     
     
     
    div#calendar ul.label{
        float:left;
        margin: 0px;
        padding: 0px;
        margin-top:5px;
        margin-left: 5px;
    }
     
    div#calendar ul.label li{
        margin:0px;
        padding:0px;
        margin-right:5px;  
        float:left;
        list-style-type:none;
        width:80px;
        height:40px;
        line-height:40px;
        vertical-align:middle;
        text-align:center;
        color:#000;
        font-size: 15px;
        background-color: transparent;
    }
     
     
    div#calendar ul.dates{
        float:left;
        margin: 0px;
        padding: 0px;
        margin-left: 5px;
        margin-bottom: 5px;
    }
     
    /** overall width = width+padding-right**/
    div#calendar ul.dates li{
        margin:0px;
        padding:0px;
        margin-right:5px;
        margin-top: 5px;
        line-height:80px;
        vertical-align:middle;
        float:left;
        list-style-type:none;
        width:80px;
        height:80px;
        font-size:25px;
        background-color: #DDD;
        color:#000;
        text-align:center; 
    }
     
    :focus{
        outline:none;
    }
     
    div.clear{
        clear:both;
    }     
    

    Bây giờ chúng ta hãy hiển thị lịch. Tạo một tệp kiểm tra "index.php". Và bao gồm "lịch.php" và "lịch.css" như dưới đây. Tại phần thân của HTML, chúng ta hãy khởi tạo một thể hiện lịch và gọi hàm show () của nó.

    <html>
    <head>   
    <link href="calendar.css" type="text/css" rel="stylesheet" />
    head>
    <body>
    php
    include 'calendar.php';
     
    $calendar = new Calendar();
     
    echo $calendar->show();
    ?>
    body>
    html>  
    

    Bây giờ bạn sẽ có thể thấy một lịch PHP làm việc tốt như sau:

    Hướng dẫn how to create php calendar? - làm thế nào để tạo lịch php?

    3. Mã nguồn cuối cùng và nguồn

    Nếu bạn làm theo cùng với các hướng dẫn từng bước, bạn sẽ nhận được tất cả các mã nguồn tại chỗ. Tuy nhiên, nếu bạn đang cảm thấy lười biếng hoặc có nhu cầu tải xuống mã nguồn đầy đủ từ chúng tôi. Bạn có thể làm như vậy bằng cách trả cho chúng tôi một khoản phí nhỏ. Hỗ trợ của bạn sẽ cho phép chúng tôi sản xuất các hướng dẫn tốt hơn và sâu hơn.

    Tải xuống mã nguồn ($ 9)

    Hy vọng rằng hướng dẫn đơn giản này đã giúp bạn phát triển. Nếu bạn thích bài viết của chúng tôi, xin vui lòng theo dõi chúng tôi trên Twitter và giúp truyền bá. Chúng tôi cần sự hỗ trợ của bạn để tiếp tục. Nếu bạn có câu hỏi hoặc tìm thấy những sai lầm của chúng tôi trong hướng dẫn trên, hãy để lại nhận xét dưới đây để cho chúng tôi biết.

    Làm thế nào để tạo lịch với 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 để làm lịch trong PHP với sự kiện?

    Bước1: Tạo bảng cơ sở dữ liệu MySQL.....
    Bước 2: Bao gồm các tệp bootstrap và jQuery.....
    Bước3: Lịch sự kiện thiết kế HTML.....
    Bước 4: Tạo lịch sự kiện với plugin lịch Bootstrap.....
    Bước5: Tải dữ liệu sự kiện từ cơ sở dữ liệu MySQL ..

    Làm thế nào để bạn tạo một lịch cho một trang web?

    1. Mở trang web Lịch.NET trong trình duyệt web của bạn (liên kết trong tài nguyên), sau đó nhấp vào liên kết "Tạo lịch miễn phí".Nhấp vào liên kết "Tạo tại lịch.net" trên màn hình tiếp theo, sau đó nhập tên tệp, tiêu đề và mô tả trên biểu mẫu trang tiếp theo.

    Làm thế nào để bạn tạo một lịch trong HTML?

    Cách tiếp cận: Đầu tiên chúng ta sẽ sử dụng thẻ bảng, sẽ được sử dụng để tạo cấu trúc của lịch.Điều này sẽ cho chúng ta một ý tưởng về cách lịch được tạo bằng HTML.Sau đó, chúng tôi sẽ áp dụng một số thuộc tính CSS để làm cho thiết kế của lịch tốt hơn.