本文介绍了PHP日历-从星期一开始日历的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在php中有一个日历,显示给定月份的月份视图.在表格中,星期从星期日开始,到星期六结束.基本上,如果一周结束,它将添加一个新的表行.我希望它从星期一开始,从星期几开始,到星期日结束.这是我的代码.2020年3月的日历会在此链接中显示.当前结果图像

i have a calendar in php which displays a month view of the given month. There week starts from sunday and ends at saturday in a table. Basically it adds a new table row if the week is ended.i want it to start the week from day monday and ends at sunday.Here is my code. Calendar for March 2020 result in this link. Current Result Image

// Create array containing abbreviations of days of week.
 $daysOfWeek = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');

 // What is the first day of the month in question?
 $firstDayOfMonth = mktime(0,0,0,$month,1,$year);

 // How many days does this month contain?
 $numberDays = date('t',$firstDayOfMonth);

 // Retrieve some information about the first day of the
 // month in question.
 $dateComponents = getdate($firstDayOfMonth);

 // What is the name of the month in question?
 $monthName = $dateComponents['month'];

 // What is the index value (0-6) of the first day of the
 // month in question.
 $dayOfWeek = $dateComponents['wday'];

 // Create the table tag opener and day headers

$datetoday = date('Y-m-d');



$calendar = "<table class='table table-bordered'>";


  $calendar .= "<tr>";

 // Create the calendar headers

 foreach($daysOfWeek as $day) {
      $calendar .= "<th  class='header'>$day</th>";
 }

 // Create the rest of the calendar

 // Initiate the day counter, starting with the 1st.

 $currentDay = 1;

 $calendar .= "</tr><tr>";

 // The variable $dayOfWeek is used to
 // ensure that the calendar
 // display consists of exactly 7 columns.

 if ($dayOfWeek > 0) {
     for($k=0;$k<$dayOfWeek;$k++){
            $calendar .= "<td  class='empty'></td>";

     }
 }


 $month = str_pad($month, 2, "0", STR_PAD_LEFT);

 while ($currentDay <= $numberDays) {

      // Seventh column (Saturday) reached. Start a new row.

      if ($dayOfWeek == 7) {

           $dayOfWeek = 0;
           $calendar .= "</tr><tr>";

      }

        $currentDayRel = str_pad($currentDay, 2, "0", STR_PAD_LEFT);
        $date = "$year-$month-$currentDayRel";

        $dayname = strtolower(date('l', strtotime($date)));

         $calendar.="<td><h4>$currentDay</h4></td>";






      // Increment counters

      $currentDay++;
      $dayOfWeek++;

 }



 // Complete the row of the last week in month, if necessary

 if ($dayOfWeek != 7) {

      $remainingDays = 7 - $dayOfWeek;
        for($l=0;$l<$remainingDays;$l++){
            $calendar .= "<td class='empty'></td>";

     }

 }

 $calendar .= "</tr>";

 $calendar .= "</table>";

 echo $calendar;

推荐答案

更改以下内容以使其起作用

change the following to make it work

$daysOfWeek = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'];

$firstDayOfMonth = mktime(0,0,0,$month,7,$year);

这篇关于PHP日历-从星期一开始日历的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 03:22
查看更多