日付で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」に変更したときに機能しました。
クレイグ

1
構成されている場合、「値」は開始日、「値2」は終了日であることに注意してください。
Mario Awad 2014

2

私は使用していませんEntityFieldQueryが、コードを見ると、それfield_event_dateMySQLのDateTimeフィールドとして格納されていること、および引数の形式が推奨される形式のいずれかであることを確認する必要があることがわかります。

「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.