Erstmal hi,
ich rechne die verbleibenden Tage bis zu einem bestimmten Datum per MySQL aus. Das ist auch soweit kein Problem, solang der Tag noch in diesem Jahr ist.
Doch ist der Tag erst im nächsten JAhr wirds n bissel komplizierter. 365-Tage die aus der DB kommen.
Jetzt kommt aber mein "Problem": ist das jetzige oder das nächste Jahr ein Schaltjahr so will ich den zusätzlichen Tag natürlich auch berechnen. Das hab ich jetzt zwar hinbekommen (glaub ich ), aber ich bin mir fast sicher, dass das auch besser geht!
Hier mal mein
codeschnipsel:
Das ist meiner Meinung nach leicht kompliziert, bzw. umständlich deswegen wollt ich mal fragen, ob jemand eine bessere Idee hat.
Danke im Vorraus!
Greetingz
Damian
ich rechne die verbleibenden Tage bis zu einem bestimmten Datum per MySQL aus. Das ist auch soweit kein Problem, solang der Tag noch in diesem Jahr ist.
Doch ist der Tag erst im nächsten JAhr wirds n bissel komplizierter. 365-Tage die aus der DB kommen.
Jetzt kommt aber mein "Problem": ist das jetzige oder das nächste Jahr ein Schaltjahr so will ich den zusätzlichen Tag natürlich auch berechnen. Das hab ich jetzt zwar hinbekommen (glaub ich ), aber ich bin mir fast sicher, dass das auch besser geht!
Hier mal mein
codeschnipsel:
PHP-Code:
$sql = "SELECT
Name,
Vorname,
Birthday,
(YEAR(CURDATE())-YEAR(birthday)) -
(RIGHT(CURDATE(),5)<RIGHT(birthday,5)) AS age,
TO_DAYS(CONCAT_WS('-',YEAR(now()),MONTH (birthday),DAYOFMONTH(birthday)))-
TO_DAYS(now()) AS todays,
MONTH(birthday) AS birthmonth
FROM hp_user
WHERE BirthdayOK = '1'
ORDER BY ".$order;
$query = $this->_query($sql);
while($value = mysql_fetch_array($query))
{
/*Falls B-Day erst nächstes JAhr ist! + Unterscheidung von Schaltjahr!
Erklärung der if-Abfrage:
1.Fall:
Zuerst wird geprüft, ob der Tag in diesem JAhr schon verstrichen ist, dann ob diese Jahr ein Schlajahr ist, ob der jetzige Monat Jan oder Feb ist und zu guter letzt, ob das Datum >= März ist.
2.Fall:
Fangen wir schonmal nach dem 1. und an ;)
Ob das nächste Jahr ein Schaltjahr ist und das Datum >= März ist. */
if(($value['todays'] < 0 && date('L') == 1 && date('m') <= 02 && $value['birthmonth'] < 03)OR($value['todays'] < 0 && date('L', date('Y')+1) == 1 && $value['birthmonth'] >= 03))
{
$value['todays'] = 366+$value['todays'];
}
elseif($value['todays'] < 0 AND date('L') == 0)
{
$value['todays'] = 365+$value['todays'];
}
Danke im Vorraus!
Greetingz
Damian
Kommentar