2015-02-07 61 views
0

我正在構建一個查詢以獲取特定motoboy的所有servicios,但我需要它們是當前日期。該屬性的數據類型是timestamp。我有這樣的代碼,但doenst工作獲取Laravel當天的所有服務

Motoboy::with(array('servicios' => function($query){ 
        $query->where('id_estado', '1')->orWhere('id_estado', '2') 
        ->where('fecha_hora', new DateTime('today')); 

       }))->where('auth_token',$auth)->firstOrFail(); 
+0

日期應該作爲字符串date('Ymd H:i:s',time()')傳遞。使用mysql之間獲取兩個時間戳之間的數據 – astroanu 2015-02-07 07:35:46

回答

1

new DateTime被實例化一個對象,並沒有你需要timestamp格式。 一個簡單的解決方案是使用date()功能來指定你想要的格式,所以當前timestamp你會使用date('Y-m-d H:i:s')

另外,我建議你查詢了整整一天是這樣的:

$startToday = date('Y-m-d 00:00:00'); 
$endToday = date('Y-m-d 23:59:59'); 
// ... 
->whereBetween('fecha_hora', array($startToday,$endToday)); 
// .... 

您的代碼會變成:

Motoboy::with(array('servicios' => function($query){ 
    $startToday = date('Y-m-d 00:00:00'); 
    $endToday = date('Y-m-d 23:59:59'); 
    $query->where('id_estado', '1')->orWhere('id_estado', '2')->whereBetween('fecha_hora', array($startToday,$endToday)); 

}))->where('auth_token',$auth)->firstOrFail(); 
+0

用這個hora返回一個服務..''「fecha_hora」:「2019-02-08 05:02:00」,''' – cheloncio 2015-02-07 19:02:11