it-swarm.com.de

Wie verwende ich EntityFieldQuery mit Datumsangaben?

Ich muss Entitäten mit bestimmten Daten auswählen.

Wie soll folgendes formatiert werden? Muss ich den 15. Mai 2010 analysieren?

Auch wie ich die Fehlerseite bekomme.

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;

}
9
frosty

Mit Drupal 7 und Datumsmodul 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();
10

Ich habe EntityFieldQuery nicht verwendet, aber wenn Sie sich den Code ansehen, müssen Sie sicherstellen, dass field_event_date wird als MySQL DateTime Feld gespeichert und das Format des Arguments liegt in einem der bevorzugten Formate vor:

Als Zeichenfolge im Format 'JJJJ-MM-TT' oder 'JJJ-MM-TT'. Auch hier ist eine „entspannte“ Syntax zulässig. Zum Beispiel sind '98 -12-31 ', '98 .12.31', '98/12/31 'und '98 @ 12 @ 31' äquivalent.

2
cam8001

Hier ist der Code zum Überprüfen des Datumsbereichs mit dem Schlüsselwort 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');
0