以下代码将为每个月和每月生成日期。如何列出截至下个月第一天的日期......
例如1月1日至2月1日,5月1日至6月1日等等
<?php
$month = "01";
$year = "2017";
$start_date = "01-".$month."-".$year;
$start_time = strtotime($start_date);
$end_time = strtotime("+1 month", $start_time);
echo "<table border='1'>";
for($i=$start_time; $i<$end_time; $i+=86400)
{
$list = date('Y-m-d-D', $i);
echo "<tr><td>";
echo $list;
echo "</td><td> </td></tr>";
}
echo "</table>";
?>
答案 0 :(得分:1)
首先创建一个函数,这样您就可以再次使用它而无需重复代码。阅读里面的评论,看看每行的作用。
<?php
function genMonthTable($month, $year){
/* Get days in month */
$days = cal_days_in_month(CAL_GREGORIAN, $month, $year);
/* Add 1 extra day to get first day of the next month */
$days+=1;
/* Instantiate DateTime object */
$date = new DateTime();
/* Set date */
$date->setDate($year, $month, 1);
/* Create table */
echo "<table style='border: 1px solid black;'><tbody>";
/* Loop table rows */
for($i = 1; $i <= $days; $i++){
echo "<tr><td>";
echo $date->format('Y-m-d');
echo "</td></tr>";
/* Increate date by 1 day */
$date->modify('+1 day');
}
/* Finish table */
echo "</tbody></table>";
/* Unset DateTime object */
unset($date);
}
/* Generate table for Januari 2017 */
genMonthTable(1, 2017);
/* Generate table for May 2017 */
genMonthTable(5, 2017);
?>