web-dev-qa-db-ja.com

x日後に期限切れになる

投稿掲載日からx日後に投稿期限切れ用のコードスニペットを作成したいのですが、このコードで試してみましたが、常に本当の状態を表示しています、何が間違っているのですか。

$pfx_date       = get_the_date('d/m/Y');
$datacorrente   = date('d/m/Y', strtotime("-5 days"));

if ( $pfx_date <= $datacorrente ) { 
    echo 'post expired'; 
} else { 
    echo 'post open'; 
}

"-5 days"は、投稿が期限切れになった後のx日の変数です。

2
SURTLER77

あなたは文字列を比較しています。日付の場合、これはyyyymmdd形式などを使用している場合にのみ有効です。

2

賛成投票のAndyの答えは、整数を比較してこれを機能させることです。 strtotime() は任意の文字列をtime整数に変換できます。これは後で比較して差と今までに経過した秒数を示します(time())。次のようなものがあります。

$expired = ( ( time() - strtotime(get_the_date('Y-m-d H:i:s')) ) / DAY_IN_SECONDS ) >= 5;
if ( $expired ) { 
    echo 'post expired'; 
} else { 
    echo 'post open'; 
}

それが役立つことを願っています。

1
Samuel Elh