날짜와 함께 EntityFieldQuery를 사용하는 방법은 무엇입니까? [닫은]


9

특정 날짜의 엔터티를 선택해야합니다.

다음 형식을 어떻게 지정해야합니까? 2010 년 5 월 15 일을 구문 분석해야합니까?

또한 오류 페이지를 얻는 방법.

function events2() {

$query = new EntityFieldQuery();
$query
  ->entityCondition('entity_type', 'node', '=')
  ->propertyCondition('status', 1, '=')
  ->propertyCondition('type', 'event')  
  ->propertyCondition('field_event_date', '15-May-2010', '=');

$result = $query->execute();

 return $result;

}

1
field_event_date의 필드 유형을 알지 못하므로 응답 할 수 없습니다.

답변:


10

Drupal 7 및 날짜 모듈 2.2 :

$query = new EntityFieldQuery;
$result = $query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'event')
->propertyCondition('status', 1) // Getting published nodes only.
->fieldCondition('field_dates', 'value2', date("Y-m-d"), '<') // end date before today
->execute();

'value2'를 'value'로 변경했을 때 저에게 효과적이었습니다.
Craig

1
'value'는 시작 날짜이며 'value2'는 종료 날짜입니다 (구성된 경우).
마리오 Awad

2

나는 사용하지 EntityFieldQuery않았지만 코드를 살펴보면 MySQL DateTime 필드 field_event_date로 저장되어 있고 인수 형식이 선호하는 형식 중 하나 인지 확인해야합니다 .

'YYYY-MM-DD'또는 'YY-MM-DD'형식의 문자열입니다. "이완 된"구문도 여기에서 허용됩니다. 예를 들어 '98 -12-31 ', '98 .12.31', '98 / 12 / 31 '및 '98 @ 12 @ 31'은 동일합니다.


0

다음은 BETWEEN 키워드를 사용하여 기간을 확인하는 코드입니다.

$month = $form_state['values']['month'];
$year = $form_state['values']['year'];
$num_padded = sprintf("%02d", $month);
$first_day = date($year.'-'.$num_padded.'-01 00:00:00'); 
$last_day =  date("Y-m-t 23:59:59", strtotime($first_day));
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
            ->entityCondition('bundle', 'YOUR_CONTENT_TYPE')
            ->fieldCondition('DATE_FIELD', 'value', array($first_day,$last_day), 'BETWEEN');
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.