回答編集履歴
1
さきほど編集途中で送信してしまいました…。
    
        answer	
    CHANGED
    
    | @@ -1,8 +1,16 @@ | |
| 1 | 
            +
            勘で答えます。**setPointDateStartにstringを渡しているから**だと思います。
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            > $lastPointProductVipDateStartデータ型があって無いので、エラーが起きていると認識しています。
         | 
| 4 | 
            +
             | 
| 1 | 
            -
             | 
| 5 | 
            +
            おそらくご推察の通りだと思います。
         | 
| 2 6 | 
             
            ```php
         | 
| 3 | 
            -
            $ | 
| 7 | 
            +
            $pointRateEntity->setPointDateStart($now);
         | 
| 4 8 | 
             
            ```
         | 
| 5 | 
            -
             | 
| 9 | 
            +
            時点での$nowがstring型なので、setPointDateStartの内部で `$now->format()` が呼ばれ、
         | 
| 10 | 
            +
            > Call to a member function format() on string
         | 
| 6 11 |  | 
| 12 | 
            +
            `string型のメンバーの->format()がコールされたけど、string型にはformat()なんて関数定義されてないよ` と言われています。
         | 
| 13 | 
            +
            `setPointDateStart` が何型を求めているか知りませんが、おそらく`DateTime`型だと思います。
         | 
| 14 | 
            +
            DateTimeなら->format()も生えているのでこれかと。
         | 
| 7 15 |  | 
| 8 | 
            -
             | 
| 16 | 
            +
            ([date](https://www.php.net/manual/ja/function.date.php)の第1引数に日付フォーマット以外の文字列を渡すとそのまま返すんですね。初めて知りました)
         | 
