Php 如何循环+;7天,并显示基于该循环的数据

Php 如何循环+;7天,并显示基于该循环的数据,php,Php,我的代码有问题,我想显示Tadarus,Kajian,Edukasi和Umum。例如,我有一个变量$startdate='2019-09-20' 如果$startdate+7天,我想回显Tadarus 如果$startdate+14天,我想回显Kajian 如果$startdate+21天,我想回显Edukasi 如果$startdate+28天,我想回显Umum 然后,如果最后一个回波是Umum,我想再次显示来自Tadarus的数据。这是我的代码: date_default_timezone_

我的代码有问题,我想显示
Tadarus
Kajian
Edukasi
Umum
。例如,我有一个变量
$startdate='2019-09-20'

如果
$startdate+7天
,我想回显
Tadarus

如果
$startdate+14天
,我想回显
Kajian

如果
$startdate+21天
,我想回显
Edukasi

如果
$startdate+28天
,我想回显
Umum

然后,如果最后一个回波是
Umum
,我想再次显示来自
Tadarus
的数据。这是我的代码:

date_default_timezone_set("Asia/Jakarta");
$getdate = date("Y-m-d");
if (strtotime("+7 day", $getdate)) {
   echo "Tadarus";
}elseif(strtotime("+14 day", $getdate)){
   echo "Kajian";
}elseif(strtotime("+21 day", $getdate)){
   echo "Edukasi";
}elseif(strtotime("+28 day", $getdate)){
 echo "Umum";
}

你为什么不这样做呢:

function echoBasedOnDay($date) {
    if ($date === date('Y-m-d', strtotime("+7 days"))) {
        echo "Tadarus";
    } elseif($date === date('Y-m-d', strtotime("+14 days"))){
        echo "Kajian";
    } elseif($date === date('Y-m-d', strtotime("+7 days"))){
        echo "Edukasi";
    } elseif($date === date('Y-m-d', strtotime("+7 days"))){
        echo "Umum";
    }
}

echoBasedOnDay(date('2019-09-27')); // You can pass any date you want in here as the function's parameter

请告诉我这是否对您有帮助。

您的代码中没有使用
$startdate
…很抱歉,我复制了变量错误调用
strotime()
将返回unix时间戳,因此第一个
if
将始终计算为
true
。我真的不知道你想在这里做什么?如果你从获取当前日期开始,你到底想与什么进行比较?现在,您只需检查是否从
strotime()
中获得“truthy”值。我所做的就是根据日期和当前日期的差异显示数据+7天、+14天、+21天和+28天。实际上,当前日期将作为注册日期保存到数据库中,如果注册日期为+7天,则用户必须执行tadarus操作,依此类推