誰かの次の誕生日までの日数を計算するスクリプトを用意していますが(おそらくこれを行うより良い方法がありますが)、もしかしたら誰かの誕生日が3日前だったら362日次の誕生日ですが、代わりに-3が与えられます。いいえ問題は、正しい答えを得るためにそれに365日を追加していないが、それは単に動作しないと...コードは、なぜ私はうまくいかないことができます。次の誕生日までの日数を計算しようとしています
$resultcurdate = mysql_query("select curdate()",$db);
$curdate = mysql_fetch_array($resultcurdate);
$curdate1 = explode('-', $curdate[0]);
$day1 = $curdate1[2];
$month1 = $curdate1[1];
$year1 = $curdate1[0];
$birthdate = explode('-', $databack10[birthday]);
$day = $birthdate[2];
$month = $birthdate[1];
$year = $birthdate[0];
$year = $year1;
if ($month1>$month){$year=$year+1;}
$birthdate5 = $year."-".$month."-".$day;
$resultdate = mysql_query("select datediff('$birthdate5', now())",$db);
$databackdate = mysql_fetch_array($resultdate);
if($databackdate < '0'){$databackdate = (365 + $databackdate); }
任意のアイデアをなぜこれが動作しませんか?
SQLクエリでこれを行う方法はありますか?誕生日は日付フィールドタイプです。
あなたは 'DateTime()'クラスを使うほうがよいでしょうか? – Nanne
なぜあなたはそれらを比較する前に日付とその複雑な操作をやっていますか? 'SELECT DATEDIFF( '$ databack10 [birthday]'、NOW())'の何が問題なのですか? – JJJ
[XXX日までの何日ですか?](0000000000) – hakre