EntityFieldQuery tarihlerle nasıl kullanılır? [kapalı]


9

Belirli tarihlere sahip varlıkları seçmem gerekiyor.

Aşağıdakiler nasıl biçimlendirilmelidir. 15-Mayıs-2010'u ayrıştırmam gerekiyor mu

Ayrıca hata sayfasını nasıl alırım.

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 için alan türünü bilmediğimizden, bu durum geçerli olduğu için cevaplanamaz.

Yanıtlar:


11

Drupal 7 ve Date modülü 2.2 ile:

$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();

'Değer2' değerini 'değer' olarak değiştirdiğimde bu benim için çalıştı.
Craig

1
"Değer" in başlangıç ​​tarihi ve "değer2" nin yapılandırılmışsa bitiş tarihi için olduğunu unutmayın.
Mario Awad

2

Ben kullanmadım EntityFieldQuery, ama koda bakarak field_event_datebir MySQL DateTime alanı olarak saklandığından ve argüman biçiminin tercih edilen biçimlerden birinde olduğundan emin olmanız gerektiğini önerir :

'YYYY-AA-GG' veya 'YY-AA-GG' biçiminde dize olarak. Burada “rahat” bir sözdizimine de izin verilmektedir. Örneğin, '98 -12-31 ', '98 .12.31', '98 / 12/31 've '98 @ 1231' eşdeğerdir.


0

İşte BETWEEN anahtar kelimesini kullanarak tarih aralığını kontrol etmek için kod,

$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');
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.