PHP倒计时计时器,完成时+;7天,并重复,直到达到一定数量

PHP倒计时计时器,完成时+;7天,并重复,直到达到一定数量,php,timer,countdown,Php,Timer,Countdown,下面是我需要做的: 从数据库中获取时间(暂时不要担心数据库的事情) 倒计时时间(以天、小时和分钟为单位) 当倒计时达到0时,加7天倒计时,同时加1到一集计数 重复多次,直到插曲数达到一定的数字(由数据库设置,同样,此时也不要太担心数据库的内容),然后停止倒计时并播放回声 基本上,它将倒计时到下一集的电视节目的播出时间,并显示下一集是什么,这将一直持续到所有的集都播出 这是我目前拥有的,它在一定程度上有效,但只会+7天/+集一次,之后倒计时将变成负数。我尝试了while循环和其他一些东西,但运

下面是我需要做的:

  • 从数据库中获取时间(暂时不要担心数据库的事情)
  • 倒计时时间(以天、小时和分钟为单位)
  • 当倒计时达到0时,加7天倒计时,同时加1到一集计数
  • 重复多次,直到插曲数达到一定的数字(由数据库设置,同样,此时也不要太担心数据库的内容),然后停止倒计时并播放回声
基本上,它将倒计时到下一集的电视节目的播出时间,并显示下一集是什么,这将一直持续到所有的集都播出

这是我目前拥有的,它在一定程度上有效,但只会+7天/+集一次,之后倒计时将变成负数。我尝试了while循环和其他一些东西,但运气不太好

$date = "February 12, 2013 5:06 PM";
$date = strtotime($date);
$remaining = $date - time();

$episode = 0;

if ($remaining < 0) {
++$episode;
$remaining = strtotime("+7 day", $date) -time();
}

$days_remaining = floor($remaining / 86400);
$hours_remaining = floor(($remaining % 86400) / 3600);
$mins_remaining = floor(($remaining % 86400 % 3600) / 60);

if ($episode == 3){
 echo "Aired";
} else {
echo "$days_remaining:$hours_remaining:$mins_remaining Ep $episode";
}
$date=“2013年2月12日下午5:06”;
$date=strottime($date);
$remaining=$date-time();
$集=0;
如果($剩余<0){
++$集;
$leveling=strottime(“+7天,$date)-time();
}
剩余天数=最低限额(剩余天数/86400美元);
剩余$hours_=楼层($剩余%86400)/3600);
$mins_剩余=楼层($remaining%86400%3600)/60);
如果($eposion==3){
回音“播放”;
}否则{
echo“$days\u剩余:$hours\u剩余:$mins\u剩余Ep$集”;
}

非常感谢您的建议,谢谢

当然会变成负数

$resisting
达到0后,将再添加7天

if ($remaining < 0) { // remaining: less than 0 days
++$episode; // episode becomes 1
$remaining = strtotime("+7 day", $date) -time(); // remaining: less than 7 days
}
因此,它继续计数为负值,并为您提供
$eposit==1

您应该这样做:

$date = strtotime("February 12, 2013 5:06 PM");
for ($i = 0; $i < 3; $i++) {
    $episodes[$i+1] = strtotime("+". 7*$i ." day", $date);
    $remainings[$i+1] = $episodes[$i+1] - time();
}
foreach ($remainings as $key => $remaining) {
    if ($remaining > 0) {
        $episode = $key;
        $days_remaining = floor($remaining / 86400);
        $hours_remaining = floor(($remaining % 86400) / 3600);
        $mins_remaining = floor(($remaining % 86400 % 3600) / 60);
        break;
    }
}
if (!isset($episode)){
    echo "Aired";
} else {
    echo "$days_remaining:$hours_remaining:$mins_remaining Ep $episode";
}
$date=strottime(“2013年2月12日下午5:06”);
对于($i=0;$i<3;$i++){
$SECTIONS[$i+1]=STROTIME(“+”.7*$i.“天”,$date);
$remainings[$i+1]=$seconds[$i+1]-time();
}
foreach($key=>剩余$key的剩余值){
如果($剩余>0){
$eposit=$key;
剩余天数=最低限额(剩余天数/86400美元);
剩余$hours_=楼层($剩余%86400)/3600);
$mins_剩余=楼层($remaining%86400%3600)/60);
打破
}
}
如果(!isset($集)){
回音“播放”;
}否则{
echo“$days\u剩余:$hours\u剩余:$mins\u剩余Ep$集”;
}
$date = strtotime("February 12, 2013 5:06 PM");
for ($i = 0; $i < 3; $i++) {
    $episodes[$i+1] = strtotime("+". 7*$i ." day", $date);
    $remainings[$i+1] = $episodes[$i+1] - time();
}
foreach ($remainings as $key => $remaining) {
    if ($remaining > 0) {
        $episode = $key;
        $days_remaining = floor($remaining / 86400);
        $hours_remaining = floor(($remaining % 86400) / 3600);
        $mins_remaining = floor(($remaining % 86400 % 3600) / 60);
        break;
    }
}
if (!isset($episode)){
    echo "Aired";
} else {
    echo "$days_remaining:$hours_remaining:$mins_remaining Ep $episode";
}