

リクエストパラーメータ `year = 2022`, `month = 6`
から月初と月末の日付を取得しようとしたところ、以下のような結果になってしまいました。

月末の日付を正しく取得したいのですがどうすれば良いですか？

**現状のコード:**

[code]

    $start_date = date($year."-".$month."-01");
    $end_date   = date($year."-".$month."-t");
    
    log::debug("終了日の確認");
    log::debug($end_date);
    
[/code]

**実行結果:**

[code]

    [2022-05-23 21:51:25] local.DEBUG: 2022-6-31  
    
[/code]


CC BY-SA 4.0
2022-05-23T13:05:08.260
89002
2022-05-23T16:55:11.063
2022-05-23T16:55:11.063
3060
45215
question
php laravel
月末の日付を取得したいが、意図した結果にならない


`$year."-".$month."-t"` は `2022-6-t` なのだから当然です。

`date`の1つめの引数はフォーマット、2つめの引数はUnixタイムスタンプで、2つめの引数を与えない場合のデフォルトは現在の時刻のUnixタイムスタンプです。今は2022年5月なので、それを`t`でフォーマットすると31ということになり、`date`の返値は`2022-6-31`となります。

`date`の2番めの引数として、$year年$month月のUnixタイムスタンプを与える必要があります。したがって以下のようになります。

[code]

    <?php
    $year = 2022;
    $month = 6;
    $start_date = date($year."-".$month."-01");
    $end_date = date("Y-n-t", mktime(0, 0, 0, $month, 1, $year));
    echo $end_date;
    
[/code]


CC BY-SA 4.0
2022-05-23T13:57:07.053
89004
2022-05-23T13:57:07.053
45045
89002
answer