私は毎日実行し、特定の年齢に達するメンバーをチェックするスクリプトを設定しています - CMSで自動化されたメールを設定し、年齢や年齢。これをPHPとMySQLで処理するには、メソッドのパラメータとして月数が渡されます。これについては以下で説明します。しかし、私はこれについて最も簡単な方法で行くのか分からない!英国の日付書式の書式設定のために、私はstringをdatetimeからunixのタイムスタンプに変換して比較しています。 誰もこれについてもっと良い方法を見つけることができますか?おかげ列が MySQL日付比較アドバイス
// If num of months provided is a year, make calculation based on exact year
if ($age_in_months % 12 == 0)
{
// Using 365 days here (60 * 60 * 24 * 365 = 3153600)
$clause = 'WHERE ROUND((UNIX_TIMESTAMP() - UNIX_TIMESTAMP(STR_TO_DATE(dob, "%d/%m/%Y")))/31536000) = ' . $age_in_months;
}
else
{
// Using 30 days as avg month length (60 * 60 * 24 = 86400) - convert months to days
$clause = 'WHERE ROUND((UNIX_TIMESTAMP() - UNIX_TIMESTAMP(STR_TO_DATE(dob, "%d/%m/%Y")))/86400) = ' . $age_in_months * 30;
}
愚か者ではありません。適切な形式で日付を保管してください。それが最初にやらなければならないことです。 –
下記のコメントを参照してください。日付の保存形式 – spinozf