2016-04-14 59 views
1

如何查看過期日期是否小於7天后?查找從現在開始是否少於7天

到期日期格式是這樣的:2016年4月13日

我在這裏有一個代碼,但它不工作:

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

希望有人可以幫助我。

回答

5

只是兩個單位轉換爲UNIX時間戳,使您的減法,然後用86400除以它:用DateTime

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

或者另一種方式:

$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; 
} 

但這個功能會讓你的生活變得更輕鬆。

相關問題