web-dev-qa-db-ja.com

日付が30日より古いかどうかを調べる

日付文字列は次のようになります

2011-08-19 17:14:40

(年月日時間:分:秒)

日付が現在の日付より30日以上古いかどうかを確認するにはどうすればよいですか?

59
Ella

次のようなものを使用してみてください。

 if(strtotime('2011-08-19 17:14:40') < strtotime('-30 days')) {
     // this is true
 }

また、この文字列は、datetime/timestampフィールドとしてSQLに保存されているように見えます。以下を使用して、古い日付のデータベースからすべてのエントリを直接選択できます。

SELECT ... WHERE `datetime` + INTERVAL 30 DAY < NOW()
125
RiaD

PHP 5.3以上の場合は、以下を実行できます。

$someDate = new \DateTime('2011-08-19 17:14:40');
$now = new \DateTime();

if($someDate->diff($now)->days > 30) {
   echo 'The date was more than 30 days ago.';
}
26
Collin Krawll

次のようにCarbonを使用できます

if (30 - ((new \Carbon\Carbon($given_date, 'UTC'))->diffInDays()) < 0) {
    echo "The date is older than 30 days";
}
6
strtotime('2011-08-19 17:14:40') + 30 * 24 * 60 * 60 < time();
1
gion_13