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

时间:2017-10-02 10:34:11

标签: php mysql date php-carbon

如果我有月份的数字,我想得到月份的第一个日期和最后日期。

例如1月= 01,10月= 10,11月= 11

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

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

这是代码。结果就在它旁边。

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

2 个答案:

答案 0 :(得分:4)

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

使用createFromFormat

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

答案 1 :(得分:2)

问题在于这一行:

Carbon::create(10);

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

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

而你只提供第一个。因此,您最终会得到一个代表今天日期的对象,但在 10 年份。

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

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

请注意,这将默认为当前年份,因此2月份的结果将始终保持一致。