2017-05-12 8 views
0

오늘 날짜를 기준으로 레코드를 가져 오는 쿼리가 있습니다. 내 문제는 날짜가 아닌 오늘의 날짜와 시간이 필요하다는 것입니다. 오늘 오전 9시 30 분에 오전 12 시가 아니고 시작 날짜와 시간이있는 모든 기록을 가져오고 싶습니다.Laravel에서 시간 쿼리 추가하기

$today을 현재 datetime으로 사용하고 있습니다. 사용자가 페이지를로드마다, 현재 날짜은 (는) 등록 기간

$today = new DateTime('today'); 

    $programs = ScheduledProgram::where('registration_start_date', '<=', $today) 
            ->where('end_date', '>=', $today) 
            ->get(); 

registration_start_date 필드가 date 유형이 아닌 datetime이다 내에 있는지 확인하기 위해 비교된다. 하지만 내 서버는 이미 데이터로 가득 차 있습니다.

registration_start_date + 9:30을 얻기 위해 쿼리에 시간을 추가 할 수있는 방법이 있습니까?

필드 유형을 registration_start_date으로 변경하려면 이전을 실행해야합니까? 그리고 모든 기본 레코드?

답변

0

당신은 사용자 정의 날짜와 현재 시간 범위 변수를 만들 수 있습니다, 예를 들어

$today_start = date('Y-m-d').' 9:30:00'; 
$today_end = date('Y-m-d').' 18:30:00'; 

다음

$programs = ScheduledProgram::where('registration_start_date', '>=', $today_start) 
           ->where('end_date', '<=', $today_end) 
           ->get(); 

주의 사항 조회에서 이러한 변수를 사용하여 I>은 변경 < 부호 쿼리.

+0

우리는'$ today' 변수에 대해 다르게 생각하고 있습니다. 나는'datetime '을 현재 datetime으로 사용하고있다. 사용자가 페이지를로드 할 때마다 현재 날짜 시간을 비교하여 등록 기간 내에 있는지 확인합니다. – Phil

+0

미안하지만, 아마도 당신은 정확하다고 생각합니다. 나는 그것을 시험해보고 다시보고 할 것입니다. – Phil

+0

좋아, 오늘 날짜와 시간으로 오늘 걸릴 것입니다 –

0

탄소 연대 측정에 도움이됩니다. 당신의 방법에서 다음

use Carbon\Carbon 

$today = Carbon::today()->setTime(9,30,0); 

를 추가하려면 어떻게해야합니까 나는 그것을 테스트했습니다. 그것은 작동합니다. 희망이 도움이됩니다.