【问题标题】:Find if date is less than 7 days from now查找日期是否距离现在不到 7 天
【发布时间】:2016-04-14 03:05:51
【问题描述】:

我怎样才能知道有效期是否从现在起不到 7 天?

到期日期格式如下:2016-04-13

我这里有一个代码,但它不起作用:

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

希望有人能帮助我。

【问题讨论】:

    标签: php date if-statement strtotime


    【解决方案1】:

    只需将两个单位都转换为 unix 时间戳,进行减法,然后除以 86400:

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

    只需根据您要执行的操作进行更改/调整即可。

    【讨论】:

    • 我尝试了后一个代码@Ghost,它似乎可以在距离现在不到 7 天的未来日期回显较少,但过去的回显也会减少从现在起 7 天后的日期。
    • @zen 只是为此设置另一个条件,当然,如果您超过了到期日,if 将超过该条件。我只是说明了它的基本比较,比较unix时间戳或使用日期时间
    • @zen 只需在 1 到 7 之间添加类似,然后如果它的否定只是说它过去的到期日期或其他什么
    • 我看到了@Ghost,非常感谢您的投入。我想它差不多了,如果你不介意的话,你能帮我解决一个小鬼吗?已经尝试解决这个问题 2 天了。我不擅长比较 unix 时间戳。
    • 非常感谢@Ghost,你不知道我正在经历什么只是为了找到一个解决方案。竖起大拇指! +10 :)
    【解决方案2】:

    推荐探索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;
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      相关资源
      最近更新 更多