创建倒计时30天

时间:2011-12-23 12:26:32

标签: php

我正在努力创造某种倒计时。我正在创建这个社区,我想创建某种VIP,它必须持续30天。

因此,当用户购买此VIP时,我将插入当前日期('d');到数据库。

然后我每天都要-1。你会怎么做?我试过一些mktime();但这绝对不适合我。

我试过这个链接:http://www.brighthub.com/internet/web-development/articles/9471.aspx,没有任何结果。

向前致谢:-)

6 个答案:

答案 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即可实现它。

相关问题