简体   繁体   English

如何在PHP中按星期显示网格中的天数?

[英]How to display days in a grid by weeks in php?

I am trying to display the days of a month in a grid-like or table like form. 我试图以表格或表格形式显示一个月中的某几天。 I was considering using Bulma or bootstrap to handle the grid/tables. 我正在考虑使用布尔玛或引导程序来处理表格/表格。 The grid is based on 5 rows and 7 columns. 网格基于5行7列。 I can't figure out how to go about implementing the correct days of the week. 我无法弄清楚如何实施一周中的正确日期。 Each week should be grouped by a div with dates inside the div. 每周应按div分组,日期在div内。 This is what I have so far: 这是我到目前为止的内容:

  <?php

  $row = '';
  $startDate = 12/30/2018;
  $numDays = 35;
  $datesArr = array();
  $weekCounter = 1;

  for ($i = 0; $i <= numDays; i++) {
     $row .= '<div>';
     $date = date('m/j/Y', strtotime("$startDate +$i days"));
     $datesArr[] = $date;

     if ($i % 8 == 0) {
        $row .= '<p>Week ' . $weekCounter++ . '</p>';
     } else {
        $row .= '<p>'.$date . ' - ' . date('l'), strtotime($date)). '</p>';
     }

     $row .= '</div>';
  }
  echo $row;
 ?>

This is my current output: 这是我当前的输出:

Week 1 第一周

12/31/2018-Monday 12/31/2018年,周一

01/1/2019-Tuesday 01/1/2019年,星期二

01/2/2019-Wednesday 01/2/2019年,星期三

01/3/2019-Thursday 01/3/2019年至周四

01/4/2019-Friday 01/4/2019年至周五

01/5/2019-Saturday 01/5/2019年至周六

01/6/2019-Sunday 01/6/2019年,周日

Week 2 第二周

01/8/2019-Tuesday 01/8/2019年,星期二

01/9/2019-Wednesday 01/9/2019年至周三

01/10/2019-Thursday 01/10/2019年至周四

01/11/2019-Friday 01/11/2019年至周五

01/12/2019-Saturday 01/12/2019年,星期六

01/13/2019-Sunday 01/13/2019年至周日

01/14/2019-Monday 01/14/2019年,星期一

Week 3 第三周

01/16/2019-Wednesday 01/16/2019年至周三

01/17/2019-Thursday 01/17/2019年至周四

01/18/2019-Friday 01/18/2019年至周五

01/19/2019-Saturday 01/19/2019年至周六

01/20/2019-Sunday 01/20/2019年至周日

01/21/2019-Monday 1月21日/ 2019年,星期一

01/22/2019-Tuesday 01 /二千〇一十九分之二十二-星期二

Week 4 第四周

01/24/2019-Thursday 01/24/2019年至周四

01/25/2019-Friday 01/25/2019年至周五

01/26/2019-Saturday 1月26日/ 2019年至周六

01/27/2019-Sunday 1月27日/ 2019年至周日

01/28/2019-Monday 01/28/2019年,星期一

01/29/2019-Tuesday 1月29日/ 2019年至周二

01/30/2019-Wednesday 01/30/2019年至周三

Week 5 第五周

02/1/2019-Friday 02/1/2019年至周五

02/2/2019-Saturday 版本02/2/2019年,星期六

02/3/2019-Sunday 02/3/2019年至周日

<?php

$row = '';
$startDate = '12/30/2018';
$numDays = 35;
$datesArr = array();
$weekCounter = 1;

for ($i = 0; $i <= $numDays; $i++) {

    $date = date('m/j/Y', strtotime("$startDate +$i days"));
    $datesArr[] = $date;

    // New div at start of week
    if (date("l", strtotime($date)) == "Sunday") {
        $row .= "<div style=\"float: left; margin: 10px;\">";
        $row .= '<p>Week ' . $weekCounter++ . '</p>';
    }

    $row .= '<p>'. $date . ' - ' . date("l", strtotime($date)) . '</p>';

    // close div at end of week
    if (date("l", strtotime($date)) == "Saturday") {
        $row .= "</div>"; 
    }

}

echo $row;

?>

You can also consider using jQuery UI Datepicker. 您也可以考虑使用jQuery UI Datepicker。 You can use AJAX to get a start date and number of days. 您可以使用AJAX获取开始日期和天数。 Then draw the calendar. 然后绘制日历。

 $(function() { function getDateInfo() { $.getJSON("dateInfo.php", function(data){ drawCal(data.startDate, data.numDays, $(".calendar")); }) } function drawCal(sd, nd, tObj) { var format = "mm/dd/yy"; var min = $.datepicker.parseDate(format, sd); var max = new Date(); max.setDate(min.getDay() + nd); console.log(sd, max); tObj.html(""); tObj.datepicker({ dateFormat: format, minDate: min, maxDate: max, numberOfMonths: [3, 1] }); } drawCal("12/31/2018", 35, $(".calendar")); }); 
 .ui-datepicker-group { width: 100%; } 
 <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <div class="calendar"></div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM