Wie zu vergleichen und holt Datum in CakePHP?
Frage
Ich versuche, einen Verfügbarkeitskalender und Notwendigkeit zu machen zu wissen, wie kann ich Daten vergleichen, wenn sie abgerufen wird.
Meine DB ist
id
start_date
end_date
status
Jetzt nehme ich an Buchung in nächstem Monat holen will, das heißt von 2010-03-01 bis 2010-04-01. Wie soll ich diese Daten abrufen? Ich versuchte direkt über ein und den Zustand zu vergleichen, aber es hat nicht geholfen.
Das Format der Deutsche Bahn ist yyyy-mm-dd und ich verwenden, um das gleiche zu vergleichen. Aber direkter Vergleich funktioniert nicht.
Lösung
Wie Datum holen Bereiche, die sich schneiden mit einem anderen Bereich fachmännisch hier erklärt: Datumsbereiche Vergleich
Zusammenfassend möchten Sie wahrscheinlich zu Abfrage für so etwas wie folgt aus:
$start = date('Y-m-d');
$end = date('Y-m-d', strtotime('+1 month'));
$conditions = array('Event.start <=' => $end, 'Event.end >=' => $start);
$this->Event->find('all', array('conditions' => $conditions));
Damit werden alle Ereignisse innerhalb des nächsten Monats finden. Sie können früher beginnen oder später enden, aber sie werden mit dem Monat schneiden.
Andere Tipps
Angenommen, Ihre Tabelle Events und Ihre Reisedaten genannt wird, sind in $ start_date und $ end_date gespeichert, ich glaube, das sollte funktionieren:
$results = $this->Event->find('all', array(
'conditions' => array(
'start_date >=' => $start_date,
'end_date <' => $end_date
)
));
Es werden alle Datensätze erhalten, die in Ihrem Bereich beginnen und enden.