Bonjour,
J'ai trouvé un exemple de calcul de dates d'anniversaires sur Internet.
Je l'ai adapté pour mon cas comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function getBirthdays(int $idUser, string $language, string $dateFormat): false|array
{
	$db = dbConnect();
 
	$sql = <<<SQL
SELECT CONCAT( COALESCE(m.firstname,''), ' ', COALESCE(m.familyname, '') ) AS fullname, DATE_FORMAT(m.birthday, '%s') AS birthday,
	m.email, a.homephone, m.workphone, m.GSM
FROM dat_members m
	INNER JOIN dat_addresses a
		ON a.id=m.id_address
WHERE a.id_user=:id_user
	AND MONTH(m.birthday) = MONTH( DATEADD( DAY, 10, GETDATE() ) )
	AND DAY(m.birthday) = DAY( DATEADD( DAY, 10, GETDATE() ) )
ORDER BY m.birthday
SQL;
 
	var_dump($sql);
	$sql	= sprintf($sql, $dateFormat);
	$stmt	= $db->prepare($sql);
	$stmt->execute([':id_user'=>$idUser]);
	return $stmt->fetchAll();
}
Malheureusement, j'obtiens une erreur:
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1305 FUNCTION omnes.DATEADD does not exist in C:\wamp64\www\proginet\appOmnes\model\model.php on line 20
J'ai donc vérifié la fonction DATEADD qui existe bien.