如果我想从2016-01-01开始我的一月,而不是2016-01-02,我能做什么。
https://3v4l.org/uRRfU
function countDaysForChoosenYears(int $year):int
{
$att = [];
for ($i = 1; $i <= 12; $i++) {
$att[] = cal_days_in_month(CAL_GREGORIAN, $i, $year);
}
$att = array_sum($att);
return $att;
}
$YearMonthDayStructure = [];
$Date = new DateTime('2016-01-01');
for ($i = 1; $i <= countDaysForChoosenYears(2016); $i++) {
$monthName = $Date->format('F');
$yearNumber = $Date->format('Y');
$YearMonthDayStructure[$yearNumber][$monthName][$Date->format('d')] = $Date->add(new DateInterval('P1D'))->format('Y-m-d');
}
print_r($YearMonthDayStructure);
第一次进入循环时,将P1D添加到日期中。所以你的第一次约会最终是1月2日,因为你用$date->add将P1D添加到了1月1日。它不像$x++那样在使用变量后会出现"++"。它执行加法,然后将结果与添加的P1D一起提供给$YearMonthDayStructure值。