有没有办法根据日期倒计时4周(每周)?Php/Mysql


Is there a way to countdown 4 weeks (week by week) based on a date? Php/Mysql

我需要一些帮助,伙计们,有没有办法根据日期在一个月内倒计时4周?并根据剩余4周的日期告诉用户?又过了一周,对他说有"3周"等等。。例如,如果用户到达日期,请告诉他(如果您不付款,您的帐户将被终止)。当我安排另一个约会时,倒计时又开始了。。直到他的结束日期。感谢

以下是使用datediff:的解决方案

set @var := date '2016-04-30';
select
    case    when (@remaining := datediff(@var, curdate())) > 4 * 7 then ''
            when @remaining > 3 * 7 then '4 weeks remaining'
            when @remaining > 2 * 7 then '3 weeks remaining'
            when @remaining > 1 * 7 then '2 weeks remaining'
            when @remaining > 0 * 7 then '1 weeks remaining'
            else 'time is up'
    end  as `Remaining reminder`;

输出:

mysql> set @var := date '2016-04-30';
Query OK, 0 rows affected (0.00 sec)
mysql> select
    ->     case    when (@remaining := datediff(@var, curdate())) > 4 * 7 then ''
    ->             when @remaining > 3 * 7 then '4 weeks remaining'
    ->             when @remaining > 2 * 7 then '3 weeks remaining'
    ->             when @remaining > 1 * 7 then '2 weeks remaining'
    ->             when @remaining > 0 * 7 then '1 weeks remaining'
    ->             else 'time is up'
    ->     end  as `Remaining reminder`;
+--------------------+
| Remaining reminder |
+--------------------+
| 4 weeks remaining  |
+--------------------+
1 row in set (0.00 sec)

P.S

将@var更新为您的目标date

PHP解决方案

这里有另一个简单的解决方案。提供了到期日期(帐户结束日期)和当前日期。

function get_weeks_remaining($date, $expire_date){
    $difference = strtotime($expire) - strtotime($date);
    return floor($difference / 604800);
}

这是的解决方案


PS:604800是7天/1周内的秒数