如何从给定的数字月份 PHP 获取该月的第一个和最后一个日期

How to get first and last date of the month from a given numeric month PHP

如果给定月份的数字,我想获取该月的第一个日期和最后一个日期。

例如一月 = 01,十月 = 10,十一月 = 11

所以如果我传递 10 作为参数,我应该得到十月的第一个和最后一个日期。

我尝试使用 Carbon 来实现它。但是我给了我不同的结果。

这是代码。结果在旁边。

$dt =  Carbon::create(10);
echo $dt->startOfMonth(); // 0010-10-01 00:00:00
echo $dt->endOfMonth(); // 0010-10-31 00:00:00

任何一个月的第一天都是第一天。

使用createFromFormat

$dt = Carbon::createFromFormat('m', 10);
echo $dt->endOfMonth();

这一行有问题:

Carbon::create(10);

Carbon 的 create 方法采用以下参数列表:

$year, $month, $day, $hour, $minute, $second, $tz

而您只提供了第一个。所以你最终得到一个代表今天日期的对象,但是在 10.

如果您只想提供 month 参数,您应该使用:

Carbon::createFromFormat('m', 10);

请注意,这将默认为当年,因此 2 月的结果不会始终一致。