From 3c7dfc7e193200da80d53bd668cded239edf36d3 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Sun, 21 Aug 2011 01:44:15 +0200 Subject: [PATCH] [ticket/8177] Display birthdays of 29th february on 28th in non-leap years. PHPBB3-8177 --- phpBB/index.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/phpBB/index.php b/phpBB/index.php index 91cbd326b9..c3f7c871d3 100644 --- a/phpBB/index.php +++ b/phpBB/index.php @@ -84,12 +84,20 @@ $birthday_list = ''; if ($config['load_birthdays'] && $config['allow_birthdays']) { $now = phpbb_gmgetdate(time() + $user->timezone + $user->dst); + + // Display birthdays of 29th february on 28th february in non-leap-years + $leap_year_birthdays = ''; + if ($now['mday'] == 28 && $now['mon'] == 2 && !$user->format_date(time(), 'L')) + { + $leap_year_birthdays = " OR user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', 29, 2)) . "%'"; + } + $sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday FROM ' . USERS_TABLE . ' u LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid) WHERE (b.ban_id IS NULL OR b.ban_exclude = 1) - AND u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' + AND (u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' $leap_year_birthdays) AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')'; $result = $db->sql_query($sql);