我只有2个字符串,年份和月份。我需要使用Carbon来获得第一天和最后一天的服务。例如,提供了“ 2020”和“ 3”。我需要从中获取2个Carbon日期(2020-3-1和2020-3-31)。有可能吗?
答案 0 :(得分:2)
要实现您的目标,请使用以下代码:
use Carbon\Carbon; // imports the Carbon class
$year = 2020;
$month = 3;
$date_1 = Carbon::create($year, $month)->startOfMonth()->format('Y-m-d'); //returns 2020-03-01
$date_2 = Carbon::create($year, $month)->lastOfMonth()->format('Y-m-d'); //returns 2020-03-31
快乐编码:)
答案 1 :(得分:0)
我使用这种方法来获取每月的第一天和最后一天。
t
代表每月的最后一天。
$posts = Post::whereBetween('created_at', [
Carbon::createFromDate(date('Y-m-d 00:00:00', strtotime(request('year') . '-' . request('month') . '-1'))),
Carbon::createFromDate(date('Y-m-d 23:59:59', strtotime(request('year') . '-' . request('month') . '-t')))])
->get();
return $posts
编辑:
我在+
上使用php
,但是.
很抱歉。
或者您可以使用此:
$this->client = $this->client->whereBetween('created_at', [
Carbon::createFromDate(date(request('year') . '-' . request('month') . '-01 00:00:00')),
Carbon::createFromDate(date(request('year') . '-' . request('month') . '-12 23:59:59'))])
->get();
编辑:(编辑:)
根据您的问题,您需要获得第一天和最后一天。 但是在现实世界中,第一天是给定的,因此您只需要获得最后一天即可。 应该是这样的。
应该给出第一天,因为我们都知道它降为1。
$firstDayOfTheMonth = date(request('year') . '-' . request('month') . '-1 00:00:00');
$lastDayOfTheMonth = date(request('year') . '-' . request('month') . '-t 23:59:59');
答案 2 :(得分:0)
您可以像下面的startOfMonth
和endOfMonth
这样的碳法简单地做到这一点
$startOfMonth=\Carbon\Carbon::parse('2020-3')->startOfMonth()->format('Y-n-d');
$endOfMonth=\Carbon\Carbon::parse('2020-3')->endOfMonth()->format('Y-n-d');
答案 3 :(得分:0)
Carbon::create($year, $month, $day, $hour, $minute, $second, $tz);
create()
的唯一特殊情况是最小值为 默认为缺少参数,但默认为当前值 显式传递null。
因此,如果您仅通过$year
和$month
,它将自动被视为第一天,然后您可以format()
使用它来获取第一天作为日期,例如
Carbon::create($year, $month)->format("Y-m-d")