2016-04-14 14 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; 
} 

但这个功能会让你的生活变得更轻松。

相关问题