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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.