我正在努力创造某种倒计时。我正在创建这个社区,我想创建某种VIP,它必须持续30天。
因此,当用户购买此VIP时,我将插入当前日期('d');到数据库。
然后我每天都要-1。你会怎么做?我试过一些mktime();但这绝对不适合我。
我试过这个链接:http://www.brighthub.com/internet/web-development/articles/9471.aspx,没有任何结果。
向前致谢:-)
答案 0 :(得分:3)
将结束时间存储在数据库中,并检查是否now < end time
。避免使用必须按计划更新的标志。
答案 1 :(得分:1)
您可以将当前日期插入time()
。此函数返回自1970年1月1日以来的秒数。
由于您已存储开始日期,因此您只需将30 days * 24 hours / day * 60 minutes / hour * 60 seconds / minute
添加到开始日期即可计算结束日期。
要确定VIP状态是否仍然有效,您可以比较结束时间是否已经过去;或者 - 通过检查当前time()
和存储时间之间的差异 - 找出剩余的天数。
答案 2 :(得分:1)
当用户从您的网站购买VIP时,保存他们在您的数据库中购买的日期以及每当您在页面中显示VIP时,请检查当前日期是否少于30天VIP仍然有效,否则VIP已过期。
$boughtDate = new DateTime("2011-11-20");
$currentDate = new DateTime("2011-12-23");
$interval = $boughtDate ->diff($currentDate );
if (($interval->d) > 30 ) {
echo "VIP expired";
}
答案 3 :(得分:0)
当有人购买VIP权限时,只需存储完整的时间戳。然后,您可以通过VIP_DURATION_IN_SECONDS - (time() - $vip_bought_time)
获得剩余时间。只要此值返回零或负值,VIP状态就会过期。
当你检查它时并不重要 - 你可以在每天/每小时/任何时候运行的cronjob中执行此操作,或者仅在每个页面加载时执行。由于您可能将此值存储在用户表中,因此您仍然可以使用它 - 因此检查非常便宜。
答案 4 :(得分:0)
您可以设置数据库的到期时间戳,并在脚本中执行以下操作:
$expirationDate = *query it from databse*;
$now = time();
if ($expirationDate > $now)
{
//grant access
}
else
{
//deny access
}
答案 5 :(得分:-2)
可能您正在寻找像这样的countdown script。
只需使用此documentation即可实现它。