0

ユーザーの誕生日を varchar として mysql db に保存する Facebook アプリがあります。すべてのユーザーの誕生日を取得しようとしています

現在の週で、誕生日が先週だった場合は、1 週間後に予定されています。

私のPHPでは、誕生日を取得し、それらをstrtotime()で変換します

今日が誕生日か簡単に確認できる

if (date('m-d') == date('m-d', $bday)) {
    // today is your bday!!
}

日付の比較に関しては迷っていますああああ、私は strtotime('nextweek') などを使用できることを知っていますが、わかりません

4

2 に答える 2

2

クエリは次のようになります。

select * from table 
where bday between curdate() - INTERVAL 7 DAY and curdate() + INTERVAL 7 DAY

先週と来週の範囲。

于 2012-05-18T02:26:40.043 に答える
1

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 月下旬である場合などのエッジ ケースを処理するためです。

この答えはおそらく洗練される可能性がありますが、うまくいくはずです。

于 2012-05-18T02:58:56.103 に答える