2011-11-10 15 views
4

ここで少し問題があります。PHPで日付が過去30日であることを確認してください

データベースに日付:date_last_appliedを挿入します。

私はちょうど$row['date_last_applied']を使用してこれを呼び出すことができます。今、私はこの挿入された日付がだったかどうかをチェックする必要があります。の場合、アクションを実行します。

$query = "SELECT date_last_applied FROM applicants WHERE memberID='$id'"; 
$result = mysql_query($query); 

while($row = mysql_fetch_array($result)) { 
    $date = strtotime($row['date_last_applied']); 

} 

これは私が持っているすべてです。いくつかのことを試しましたが、すべて失敗しました。 :(あなたがのみアクションを実行している場合

答えて

15
if ($date < strtotime('-30 days')) 

に日付だけを取得経由でそれを行うことができます30日以上経過した日付の場合は、Marcoのソリューションを使用する必要があります。

+1

PHPの解決策は正しいと思われますが、おそらくOPはそれを必要とします。+1あなたのために!: ) – Marco

+0

+1あなたのためにも...彼は彼が必要なものについてはっきりしていませんでした。私が知っている限り、彼は30日前に何かを欲しいと思っていたかもしれませんが、誰かがそれを必要としているとは思えません。 – Brad

+0

ありがとう!私はそのような単純なコードだとは思えません。 :P –

9

あなたはSQLは、最後の30日間

SELECT date_last_applied 
FROM applicants 
WHERE memberID = your_id 
    AND date_last_applied BETWEEN 
     DATE_SUB(NOW(), INTERVAL 30 DAY) AND NOW() 

または30日以上経過し

SELECT date_last_applied 
FROM applicants 
WHERE memberID = your_id 
    AND date_last_applied < DATE_SUB(NOW(), INTERVAL 30 DAY) 
+0

また、コードfそれが30日前でないときに。私は他のプロジェクトのためにこの解決策が必要なので、ありがとう! –

+0

Ok ...このコードが必要ですが、間違いなく動作しません。:/ 'time()'形式を使用しています。私が何をしても、常に正の値を返します。 –

+0

@Aart: 'time()'を使っているところは分かりません。私のクエリはデータベースの日付が現在の日付/時刻と30日前の時刻の間にあるレコードを返します...それは日数を使用しています...時間だけを使用するとうまくいきません...もっとよく理解してください... – Marco

関連する問題