PHP:如何计算所有42天的日历天数

问题描述 投票:0回答:1

目标是专门获得一定天数,,开始日期和结束日期,就好像是一个“日历矩阵”一样,包含42天(即当月的天)以及上个月和下个月的天。无需出示(渲染)日历,只需获取日期。

例如,如下图所示。

我需要输入给定年份的某个月份,并且需要获得该天范围,如图所示。

[使用PHP Carbon,使用startOfMonth()endOfMonth()subMonth()addMonth()可以轻松获得当月的日期。

这样做,我得到了这3个月的每一天,但目标是能够“过滤”这几天,以仅显示等于日历的间隔,但显然是动态的,即如果我使用Carbon,只需告知所需日期,并考虑每个“单元格”的位置,即可获得“过滤的”范围。

$prev_start = Carbon::now()->subMonth()->startOfMonth();
$prev_end = Carbon::now()->subMonth()->endOfMonth();

$start = Carbon::now()->startOfMonth();
$end = Carbon::now()->endOfMonth();

$next_start = Carbon::now()->addMonth()->startOfMonth();
$next_end = Carbon::now()->addMonth()->endOfMonth();

calendar

php date php-carbon
1个回答
1
投票

所以这就是您可以做的:

$monthStart = Carbon::now()->startOfMonth();
$monthEnd = Carbon::now()->endOfMonth();

$calendarStart = $monthStart->startOfWeek(Carbon::SUNDAY); 
$calendarEnd = $monthEnd->endOfWeek(Carbon::SATURDAY);

$calendarStart$calendarEnd现在应包含将在单个屏幕中显示的第一天和最后一天。假定日历将扩展显示的第一周和最后一周。

如果您使用的日历始终显示42天,则无论您做什么都可以:

$monthStart = Carbon::now()->startOfMonth();

$calendarStart = $monthStart->startOfWeek(Carbon::SUNDAY); 
$calendarEnd = $calendarStart->addDay(42);
© www.soinside.com 2019 - 2024. All rights reserved.