Hojz!

Ik zoek een code waarmee ik kan laten zien over hoeveel dagen een lid jarig is.

$GDP = Geboortedag
$GMP = Geboortemaand
$GJP = Geboortejaar


Alvast bedankt.

Nick
Zet de geboortedatum in een MySQL tabel als een type DATE. Dan kun je met deze query de volgende verjaardag laten zien:
<?php
$sql = "
SELECT geboortedatum,
CASE
WHEN MONTH(datum) < MONTH(CURDATE()) THEN CONCAT(YEAR(CURDATE())+1, DATE_FORMAT(datum, '-%m-%d'))
WHEN MONTH(datum) > MONTH(CURDATE()) THEN CONCAT(YEAR(CURDATE()), DATE_FORMAT(datum, '-%m-%d'))
WHEN MONTH(datum) = MONTH(CURDATE()) THEN
CASE
WHEN DAYOFMONTH(datum) < DAYOFMONTH(CURDATE()) THEN CONCAT(YEAR(CURDATE())+1, DATE_FORMAT(datum, '-%m-%d'))
WHEN DAYOFMONTH(datum) >= DAYOFMONTH(CURDATE()) THEN CONCAT(YEAR(CURDATE()), DATE_FORMAT(datum, '-%m-%d'))
END
END
AS volgende_verjaardag
FROM tabelnaam
";
?>
Ik had al eens geGoogled en kwam het volgende tegen wat niet werkt:
$Aftellen = (int)((mktime (0,0,0,$GMP,$GDP,date('Y'))-time(void))/86400); 
if($Aftellen < 0) { 
$Aftellen = (int)((mktime (0,0,0,$GeboortedatumSplit[1],$GeboortedatumSplit[0],(date('Y')+1))-time(void))/86400); 
} 
Het probleem daarmee is, dat altijd het huidige jaar genomen wordt. Maar stel nu dat iemand in januari jarig is? Ik zal even iets in PHP maken voor je. Momentje.
<?php
$dag = 11;
$maand = 5;
$jaar = 1962;

$timestamp_volgende_verjaardag = mktime (0, 0, 0, $maand, $dag, date('Y'));
if ($timestamp_volgende_verjaardag < time ()) {
$timestamp_volgende_verjaardag = mktime (0, 0, 0, $maand, $dag, date('Y') + 1);
}
$aantal_dagen_tot_verjaardag = round (($timestamp_volgende_verjaardag - time ()) / (3600 * 24), 0);
echo $aantal_dagen_tot_verjaardag;
?>
Bedankt Jan, voor de code!

Nick

Reageren