2016-08-01 83 views
0

如何使用Carbon在PHP中使日期字符串變爲日期對象?字符串日期對象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 

普通字符串的值:

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門面的日期時,可能不會返回一個碳實例。 試試..:

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

或者,你應該更喜歡在你的Order模型中使用$dates屬性..

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

不工作; // –

+0

@ arnas-puidokas更新..再次檢查 –

+0

錯誤中的尾隨數據 –

1

使用$dates財產Order模型:

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

對我來說它不起作用;/ –

+0

它在處理'order_creation_date'時返回'Carbon'對象。閱讀關於碳。 @ArnasPuidokas – revo

+0

它不吸。我故意在口語波斯語中說。 @WiktorStribiżew – revo