2016-08-01 7 views
0

Как создать дату на дату объекта в PHP с помощью Carbon?String to Date Object PHP Laravel Carbon

$minTime = DB::table('order') 
      ->select('order_creation_date', 'restaurant_id') 
      ->where('restaurant_id', '=', '70') 
      ->orderBy('order_creation_date', 'asc') 
      ->first(); 

      $m = $orderDay -> month; 
      $d = $orderDay -> day; 
      $y = $orderDay -> year; 

    $y = (int)$y; 
    $d = (int)$d; 
    $m = (int)$m; 

    $orderDay = $minTime -> order_creation_date; 
    var_dump($orderDay); 

Ошибка:

Trying to get property of non-object 

Normal Значение строки:

string(19) "2016-02-05 14:51:30" 

Любые идеи, как это исправить? Я думаю, мне нужно создать объект на сегодняшний день. Спасибо.

ответ

0

Ваша ошибка, безусловно, находится на линии 2

Изменить порядок кода:

$minTime = DB::table('order') 
     ->select('order_creation_date', 'restaurant_id') 
     ->where('restaurant_id', '=', '70') 
     ->orderBy('order_creation_date', 'asc') 
     ->first(); 

$orderDay = $minTime -> order_creation_date; 

     $m = $orderDay -> month; 
     $d = $orderDay -> day; 
     $y = $orderDay -> year; 

$y = (int)$y; 
$d = (int)$d; 
$m = (int)$m; 


var_dump($orderDay); 

или при доступе к даты, используя DB фасад, он, вероятно, не возвращает углерода Instance. Попробуйте ..:

$orderDay = Carbon::createFromFormat("Y-m-d H:i:s",$minTime -> order_creation_date); 

В качестве альтернативы, вы должны предпочесть использовать $dates недвижимость в вашей Order модели ..

protected $dates = ['order_creation_date']; 
+0

не работает; // –

+0

@ arnas-puidokas Обновлено .. Check-Again –

+0

Данные для отслеживания ошибок –

1

$dates Используя свойство в Order модели:

protected $dates = ['order_creation_date']; 
+0

для меня это не работает/ –

+0

Он возвращает объект 'Carbon' при работе с' order_creation_date'. Читайте об углероде. @ArnasPuidokas – revo

+0

Это не сосать. Я просто сказал в разговорном персидском народе, нарочно. @ WiktorStribiżew – revo