2016-04-14 30 views
1

有効期限が7日以内であることを確認するにはどうすればよいですか?日付が今から7日以内であるかどうかを確認

有効期限の形式は次のようになります。2016年4月13日

私はここのコードを持っているが、それは動作しません:

if($record->$c < date('Y-m-d', strtotime('-7 day'))){ 
    // this is true 
} 

ホープ誰も私を助けることができます。

答えて

5

ちょうどその86400で割り、あなたの減算を行い、UNIXタイムスタンプに両方の単位を変換:

$expiry_date = '2016-04-18'; 
$today = time(); 
$interval = strtotime($expiry_date) - $today; 
$days = floor($interval/86400); // 1 day 
if($days < 7) { 
    echo 'less'; 
} 

それともDateTimeクラスと別の方法:

$expiry_date = '2016-04-18'; 
$expiry_date = new DateTime($expiry_date); 
$today = new DateTime(); 
$interval = $today->diff($expiry_date); 
$day = $interval->format('%r%a'); 
if($day < 7) { 
    echo 'less'; 
} 

例条件:

$expiry_date = '2016-04-18'; 
$today = time(); 
$interval = strtotime($expiry_date) - $today; 
$day = floor($interval/86400); // 1 day 
if($day >= 1 && $day < 7) { 
    echo 'between 1 - 7 days'; 
} elseif($day <= 0) { 
    echo 'deadline'; 
} else { 
    echo 'soon'; 
} 

あなたがしようとしていることに応じて、ちょうど変更/調整してください。

+0

私は後者のコード@Ghostを試しましたが、これから7日以内の未来の日付ではエコーが少なくなるように動作しているようですが、これから7日後。 – zen

+0

@zenちょうどそれのための別の条件を作る、あなたが有効期限を超えている場合は、それを過ぎて行くのはもちろんです。私はちょうどそれの基本的な比較を示して、unixのタイムスタンプを比較するか、またはdatetimeを使用して – Ghost

+0

@zenちょうど1と7の間のように追加して、その否定的なものが過去の有効期限または何かを言う場合 – Ghost

0

date_diff()機能を探索オススメ:

http://php.net/manual/en/function.date-diff.php

私の挑戦は異なっていた:

// Count days is date range 
function count_days_in_range($date1, $date2) { 

    $date1  = date_create($date1); 
    $date2  = date_create($date2); 

    $interval = date_diff($date1, $date2); 
    $days  = $interval->days; 

    return $days; 
} 

しかし、この機能は、生活がより簡単になります。

関連する問題