2017-03-17 5 views
0

私のコードは次のようである:今とdatetimeを比較するにはどうしたらいいですか? Laravel 5.3

foreach ($orders as $order) 
{ 
    date_default_timezone_set('Asia/Jakarta'); 
    $now_at = date("Y-m-d H:i:s"); 
    $delivered_at = $order->delivered_at->toDateTimeString(); 
    $delivered_after_1d = strtotime("+1 day", strtotime($delivered_at)); 
    $delivered_after_1d = date('Y-m-d H:i:s', $delivered_after_1d); 
    if($now_at > $delivered_after_1d) 
    { 
     ... 
    } 
} 

それは

に動作します。しかし、私はlaravelを使用して、それを変更します。たとえば、Carbon::now()を使用します。しかし、私は混乱しています

私を助けることができる人はいますか?

注:

delivered_at:データタイプ=日時

+0

ここに回答するhttp://stackoverflow.com/questions/34616429/laravel-5-time-difference – Scaffold

答えて

0

あなたはprotected $dates = ['array','of','fields'] 下のモデルにフィールド名を追加することができ、彼らはあなたがこれを書くことができ、炭素インスタンス

1

にキャストされます。うまくいけば、これは

foreach ($orders as $order) 
{ 
    date_default_timezone_set('Asia/Jakarta'); 
    $now_at = Carbon::now(); 
    $delivered_at = $order->delivered_at->toDateTimeString(); 
    $delivered_after_1d = $delivered_at->addDays(1); 
    if($now_at > $delivered_after_1d) 
    { 
    ... 
    } 
} 

はまた、あなたのコントローラの先頭にuse Carbon\Carbon;を書き、あなたの問題が解決します。

関連する問題