Exposed Filters - Datum vor 1970
am 08.04.2010 - 09:49 Uhr in
Hallo zusammen,
ich habe ein Problem, wenn ich bei der Einschränkung nach Geburtsjahren Exposed Filters einsetze. Das scheint mit der Unix-Timestamp-Geschichte und 1970 zusammenzuhängen. Ich habe aber (rechnerische) Gründe, warum ich die Daten als Timestamp gespeichert habe.
Alle Daten vor 1970 sind als negative Werte gespeichert, und das auch korrekt, wenn ich die Timestamps umwandeln lasse.
Wenn der Exposed Filter nicht angewendet wird, werden alle in Frage kommenden User angezeigt. Wenn ich den Filter (Granularität: Jahr) anwende und sagen wir mal einen Zeitraum zwischen 1960 und 1980 eingebe, dann werden die User, die nach 1980 geboren sind, korrekterweise nicht mehr angezeigt.
Die User vor 1960 sollen ja sowieso auch nicht mehr angezeigt werden, das Problem ist aber, dass die User zwischen 1960 (im Beispiel) und 1970 auch nicht mehr angezeigt werden, sobald der Exposed Filter eingesetzt wird, EGAL, welche Jahre ich als Grenzen eingebe.
In der MySQL-Abfrage sieht das so aus: ... AND (DATE_FORMAT(FROM_UNIXTIME(node_users_node_data_field_geburtsdatum1.field_geburtsdatum1_value), '%Y') >= '1960' AND DATE_FORMAT(FROM_UNIXTIME(node_users_node_data_field_geburtsdatum1.field_geburtsdatum1_value), '%Y') <= '1980')
Warum kann an der Stelle oder mit diesen Funktionen ein Geburtsjahr vor 1970 offensichtlich nicht korrekt errechnet werden, wenn es an anderer Stelle doch klappt und die Werte korrekt mit Vorzeichen in der DB stehen? Hat jemand eine Idee?
Da ich ohnehin wegen einer anderen Sache schon mit der Funktion views_pre_execute arbeite, bin ich auch nicht abgeneigt, dort etwas zu ändern bzw. die Query ein wenig "umzuschreiben", also z.B. den oben zititerten Teil rauszunehmen und durch eine Bedingung zu ersetzen, in der das zum Timestamp umgerechnete Jahr mit dem Geburtsdatum-timestamp verglichen wird. Aber vielleicht gibt es ja eine sauberere Lösung?
LG
Sonja
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 11 Stunden 31 Minuten
vor 12 Stunden 59 Minuten
vor 19 Stunden 5 Minuten
vor 19 Stunden 48 Minuten
vor 20 Stunden 30 Minuten
vor 20 Stunden 52 Minuten
vor 1 Tag 21 Stunden
vor 1 Tag 22 Stunden
vor 2 Tagen 2 Stunden
vor 2 Tagen 2 Stunden