Laravel中使用Carbon时间类生成日历
日历从星期日开始,通过确定每月第一天所在的星期,计算前后日期。
public function calendar(Request $request)
{
//获取年
$year = $request->input('year', now()->year);
//获取月份
$month = $request->input('month', now()->month);
$yearMonth = sprintf("%d-%s", $year, $month);
//获取月份第一天所在的星期
$firstDayOfWeek = Carbon::parse("$yearMonth-01")->dayOfWeek;
//补全
$day = 0;
$calendar = [];
for ($i = 0; $i < 6; $i++) {
for ($j = 0; $j < 7; $j++) {
if ($firstDayOfWeek != 0 and $i == 0) {
//根据月初第一天所在的星期,计算出之前几天的日子
$day = Carbon::parse("$yearMonth-01")->subDays($firstDayOfWeek - $j)->day;
$date = Carbon::parse("$yearMonth-01")->subDays($firstDayOfWeek - $j)->format("Y-m-d");
} else {
$day++;
$date = Carbon::parse("$yearMonth-01")->addDays($day - 1)->format("Y-m-d");
}
$calendar[$i][] = $date;
}
}
return $calendar;
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
开公司啦?
@TELstatic 哈哈,开了一个。
为什么要后端生成日历,前端有好多的插件啊