2016-08-01 57 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