0

My code is like this :

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) 
    {
        ...
    }
}

It works

But I want change it using laravel. For example use Carbon::now(). But I'm confused

Is there anyone who can help me?

Note :

delivered_at : data type = datetime

samuel toh
  • 6,836
  • 21
  • 71
  • 108

2 Answers2

1

You can write this. Hopefully this will solve your problem

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) 
    {
     ...
    }
}

Also write use Carbon\Carbon; at the beginning of your controller.

Jahid Mahmud
  • 1,136
  • 1
  • 12
  • 32
0

you can add the field name in the model under the protected $dates = ['array','of','fields'] and they would be casted to carbon instances

Sari Yono
  • 577
  • 5
  • 13