bday が人の誕生年に基づいている場合、curdate() と比較しても、その人が生後 7 日未満でない限り、どのように答えが得られるかわかりません。=)
編集:
あなたはできるはずです:
$bday_this_year = strtotime(date('Y') . '-' . date('m-d', $bday));
$bday_last_year = strtotime(date('Y')-1 . '-' . date('m-d', $bday));
$bday_next_year = strtotime(date('Y')+1 . '-' . date('m-d', $bday));
$last_week = strtotime("-1 week");
$next_week = strtotime("+1 week");
if (($bday_this_year > $last_week && $bday_this_year < $next_week) || ($bday_last_year > $last_week && $bday_last_year < $next_week) || ($bday_next_year > $last_week && $bday_next_year < $next_week)) {
// Happy Birthday duders!
}
異なる年の誕生日を計算する理由は、12 月下旬でユーザーの誕生日が 1 月である場合、または 1 月上旬でユーザーの誕生日が 12 月下旬である場合などのエッジ ケースを処理するためです。
この答えはおそらく洗練される可能性がありますが、うまくいくはずです。