通过增加时间来增加进度条

时间:2018-09-09 05:09:32

标签: php laravel laravel-5

每个人,我正在为一个客户构建此项目,该项目需要一种类似的进度条指示器,以显示用户订阅计划何时到期,例如,以天数 X 注册的用户并且该计划应在之后的7天内结束(届时将完成用户试用)。

这是我正在使用的逻辑,但似乎没有用,任何更好的理想或解决方法都会更好。

用户注册日期返回2018-09-11 16:32:08.000000-(LARAVEL CARBON)保存在数据库中

,然后使用以下代码将其添加7天 Carbon :: createFromFormat('Y-m-d H:i:s',2018-09-11 16:32:08.000000;

用户跟踪过期日期结束于2018-09-18 16:32:08.000000-未保存在数据库中。

在我看来,我的这个div包含引导进度指示器。

    if (i % 1000 == 0 || (i < 1000 && i % 3 == 0)) {
    //if (i % 100 == 0) {
    //if(i >= (iter_save + 100)) {

同样的问题是,我该如何在每天经过的每一天之间循环或切换大小写,以至少指示进度,例如,如果日期是大一天,则添加变量以返回20%-我可以放在进度div

1 个答案:

答案 0 :(得分:0)

我不使用Laravel,但是我会说这样的话

Namespace

我可能在数学上是错的,因为我只是在说些什么。

您可能需要执行以下操作,具体取决于您要“剩余时间”还是“经过时间”

SparkR

例如,使用以下两个Unix时间戳:

$Carbon = New Carbon($row['subscribe_date']); //not sure how you do this
//expire 7 days after original date
$Carbon ->modify('+7 days'); 
$expire = $Carbon->getTimestamp();

$percent = round(($expire / time())*100);

if($percent <= 0) //expired

我看过Carbon,它只是DateTime的扩展,因此精确到秒。

然后,您当然需要将其返回为JSON,我确信有一些很酷的Laravel方法可以做到这一点。

如果您想要天数,则可以将两者相减并除以一天中的秒数。

$percent = round(100-($expire / time())*100));
if($percent > 100) //expired

如果您不喜欢// 2018-9-9 / 2018-9-16 = 99.99 something. // and maybe you want the something, the 00.01 bit. 1536451200 / 1537056000

,则可以随时进行时间戳记
   $seconds = time() - $Carbon->getTimestamp();
   if($seconds > 0 )
       $days = floor($seconds / (60*60*24));  //60 seconds * 60 minutes * 24 hours
   else
       $days = 0;

这只是简单的算法。

干杯!