Bagaimana cara menggunakan EntityFieldQuery dengan tanggal? [Tutup]


9

Saya perlu memilih entitas dengan tanggal tertentu.

Bagaimana seharusnya format berikut ini diformat. Apakah saya perlu mengurai 15-Mei-2010

Juga bagaimana saya mendapatkan halaman kesalahan.

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
Ini tidak dapat dijawab sebagaimana adanya karena kita tidak tahu tipe bidang untuk field_event_date.

Jawaban:


10

Dengan modul Drupal 7 dan Date 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();

Ini bekerja untuk saya ketika saya mengubah 'value2' menjadi 'value'.
Craig

1
Perhatikan bahwa 'nilai' adalah untuk tanggal mulai dan 'value2' adalah untuk tanggal akhir, jika dikonfigurasi.
Mario Awad

2

Saya belum pernah menggunakan EntityFieldQuery, tetapi melihat kode menunjukkan bahwa Anda harus memastikan bahwa field_event_datedisimpan sebagai bidang MySQL DateTime , dan bahwa format argumen dalam salah satu format yang disukai:

Sebagai string dalam format 'YYYY-MM-DD' atau 'YY-MM-DD'. Sintaks "santai" juga diizinkan di sini. Misalnya, '98 -12-31 ', '98 .12.31', '98 / 12/31 ', dan '98 @ 12 @ 31' adalah setara.


0

Berikut adalah kode untuk memeriksa rentang tanggal menggunakan ANTARA kata kunci,

$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');
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.