Hallo,
ich habe ein php-Script welches mir die Geburtstage der vergangenen und nächsten 30 Tage anzeigt. Funktioniert soweit auch ganz gut - bis ich nun im Dezember festgestellt habe, dass das bei Jahreswechsel nicht funktioniert.
Code
/* vergangene Geb finden */
$db =& JFactory::getDBO();
$query = "SELECT * FROM #__users_details WHERE (date_format(geburtstag, '%m%d')
between date_format(date_sub(curdate(), interval 30 day), '%m%d')
and date_format(date_add(curdate(), interval -1 day), '%m%d') AND (verstorben_status = '0')) ORDER BY MONTH(geburtstag),DAY(geburtstag)";
$db->setQuery($query);
$rows = $db->loadObjectList();
foreach ($rows as $row) {
echo "<tr><td>".$row->vorname."</td><td>".SUBSTR($row->name,0,1).".</td><td>".SUBSTR($row->geburtstag,8,2).".".SUBSTR($row->geburtstag,5,2).".</td></tr>";
}
/* kommende Geb finden - Anzeige in BOLD */
$db =& JFactory::getDBO();
$query = "SELECT * FROM #__users_details WHERE (date_format(geburtstag, '%m%d')
between date_format(date_sub(curdate(), interval 0 day), '%m%d')
and date_format(date_add(curdate(), interval 30 day), '%m%d') AND (verstorben_status = '0')) ORDER BY MONTH(geburtstag),DAY(geburtstag)";
$db->setQuery($query);
$rows = $db->loadObjectList();
foreach ($rows as $row) {
echo "<tr style=font-weight:bold><td>".$row->vorname."</td><td>".SUBSTR($row->name,0,1).".</td><td>".SUBSTR($row->geburtstag,8,2).".".SUBSTR($row->geburtstag,5,2).".</td></tr>";
}
Alles anzeigen
Das Feld Geburtstag hat das Format "1970-12-24 12:23:54".
Wenn ich die Anzahl der Tage der kommenden Geburtstage auf z.B. 28 Tage begrenze (also für heute 2+28) dann funktioniert es auch.
Es ist also erichtlich, dass es am Jahresübergang liegt.
Hat vielleicht jemand einen Tipp für mich ?
VG
rs