2017-03-18 13 views
0

길고도 짧은 이야기 동일한 데이터베이스의 레코드 다른 :Laravel의 날짜는

public function betweenDate($startDate,$startTime,$endDate,$endTime){ 

     return DB::table('tablice')->where([['datum', '>', $startDate." ".$startTime], ['datum', '<', $endDate." ".$endTime]])->get(); 

    } 

내가 날짜 사이의 데이터베이스에서 레코드를 검색해야하고,이 코드가 작동하지만 하나의 간단한 오류와. 반환 된 날짜는 ... {"id":62667,"br_tablice":"LK493","moguce_tablice":"LK493,LK8493,LK4293,LK4J93,LK893,L8493,LKB493,","ostalo":null,"datum":"2017-03-17 19:00:14"} ...입니다. 반환 된 날짜는 2017-03-17 19:00:14이지만 데이터베이스는 2017-03-17 20:00:14이며 그 이유는 알 수 없습니다. .env에서 데이터베이스 사용과 동일한 APP_TIMEZONE=CET을 설정합니다. 모든 시간대를 사용 했으므로 시간대가 변경되지 않습니다.

+0

데이터베이스가 UTC (또는 +2 GMT)로 설정되어있는 것처럼 보입니다. – apokryfos

+0

'SELECT @@ system_time_zone;으로 선택하고 응답은'stdClass Object ([@@ system_time_zone] => CET)'입니다. – Aleksandar

+0

시간대 문제 여야합니다. 시간을 추가하면됩니다 (빠른 수정). 'strtotime ($ time) + 3600; // 1 시간 추가' – Onix

답변

0

검색 시간이 지나면 위 코드가 수정 될 때까지 모든 코드를 변경하기로 결정했습니다. 의견에서 config/app.php을 보도록 제안되었지만 데이터베이스와 관련이 없지만 config/database.php을 보면 내 질문에 대한 해결책이됩니다. database.php에는 ... 'timezone' => env('DB_TIMEZONE', '+00:00'), ...이라는 줄이있어서 +01과 Voila로 바꿨습니다. 모두에게 제안을 주셔서 감사합니다.