Làm cách nào để sử dụng EntityFieldQuery với ngày? [đóng cửa]


9

Tôi cần phải chọn các thực thể với ngày cụ thể.

Làm thế nào sau đây nên được định dạng. Tôi có cần phân tích ngày 15 tháng 5 năm 2010 không

Ngoài ra làm thế nào tôi nhận được trang lỗi.

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
Điều này không thể được trả lời vì nó đứng bởi vì chúng ta không biết loại trường cho field_event_date.

Câu trả lời:


10

Với mô-đun Drupal 7 và 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();

Điều này làm việc cho tôi khi tôi thay đổi 'value2' thành 'value'.
Craig

1
Lưu ý rằng 'value' là ngày bắt đầu và 'value2' là ngày kết thúc, nếu được định cấu hình.
Mario Awad

2

Tôi chưa sử dụng EntityFieldQuery, nhưng nhìn vào mã cho thấy rằng bạn sẽ cần đảm bảo rằng nó field_event_dateđược lưu trữ dưới dạng trường DateTime của MySQL và định dạng của đối số là một trong các định dạng ưa thích:

Là một chuỗi ở định dạng 'YYYY-MM-DD' hoặc 'YY-MM-DD'. Một cú pháp thoải mái của người Viking cũng được cho phép ở đây. Ví dụ: '98 -12-31 ', '98 .12.31', '98 / 12/31 'và '98 @ 12 @ 31' là tương đương.


0

Đây là mã để kiểm tra phạm vi ngày bằng từ khóa GIỮA,

$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');
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.