我需要一些帮助,伙计们,有没有办法根据日期在一个月内倒计时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周内的秒数