2
0

More than 1 year has passed since last update.

【Laravel】Carbonを使ってみた

Posted at

はじめに

携わっている案件で、ユーザーがクーポンを使用する際にそのクーポンが有効期限内であるかどうかを確認する際にCarbonを使ったため、個人の備忘録として記事にしてみました。

今回の状況

use Carbon\Carbon;

public function createFromRequest(BaseRequest $request)
{
    $requestData = $request->fillData();

    // 有効期間の終了日
    $requestData['end_date_of_expiry'] = '2022-09-30';
    
    $endDateOfExpiry = new Carbon($requestData['end_date_of_expiry']);
    // 出力内容 $endDateOfExpiry = 2022-09-30 00:00:00;
}

上記の様に リクエストデータが日付のみのため、変数$endDateOfExpiryの時間は、00:00:00になってしまいます。

そのため、Carbon::now()を用いて、クーポンを用いた日時を取得した場合に、2022年9月30日の00:00:01~23:59:59の間は有効期限外となってしまいます。
そのため、クーポンを使用する日付をCarbonを用いて変更する必要がありました。

実際に行ったこと

use App\Models\CouponModel;

use Carbon\Carbon;

public function createFromRequest(BaseRequest $request)
{
    $requestData = $request->fillData();

    // 有効期間の終了日
    $requestData['end_date_of_expiry'] = '2022-09-30';
    
    $endDateOfExpiry = new Carbon($requestData['end_date_of_expiry']);
    // 出力内容 $endDateOfExpiry = 2022-09-30 00:00:00

    // 今日の日付を00:00:00で変数に代入
    $today = new Carbon('today');
    // 出力内容 $today = 2022-09-30 00:00:00

    // 今日の日付とクーポンの有効期限を比較して、クーポンのデータを取得
    CouponModel::whereDate('end_date_of_expiry', '>=', $today)->get();
}

new Carbon('today')で今日の日付で00:00:00のデータを取得できるます。

終わりに

Carbonは他にも多くのメソッドなどがあるため、今後も活用できればと思います。

参考ページ

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0