使用php每三天更改一次图像

时间:2014-07-28 16:11:46

标签: php wordpress widget

我正在创建一个wordpress小部件。这将允许用户上传八个不同图片的图像网址。现在我想把图像改变三天,从八点开始,无限时间开始。

我设法得到第一张图片的开头。让我坐的是:2014/07/28

我已应用此逻辑:

$date = $start_date;
                            $date = strtotime($date);
                            $date = strtotime("+3 day", $date);
                            $end_date = date('Y-m-d', $date);
                            $begin = new DateTime( $start_date );
                            $end = new DateTime('');
                            $end = $end->modify( '+1 day' );
                            $interval = new DateInterval('P1D');
                            $daterange = new DatePeriod($begin, $interval ,$end);
                            if($start_date <= $end_date && $end_date > date('Y-m-d'))
                            {
                                $image_number = 1;
                            }else{
                            $i = 1;
                            $j = 1;
                            foreach($daterange as $date){
                                if($i%3 == 0){
                                    echo $image_number = $j;
                                    $j++;
                                    if($j > 8){
                                    $j = 1;
                                    }
                                }
                                $i++;
                            }
                            }

&GT?;                             &#34; ALT =&#34;&#34;&GT;

有人可以告诉我这段代码有什么问题。

提前感谢大家的宝贵时间。

1 个答案:

答案 0 :(得分:0)

好吧,好像你有8张名为1.jpg到8.jpg的图片 每隔三天您想要将图像更改为下一个图像,当您处于8时,您希望转到1。

我不知道您是否有某种上传图片的开始日期,而且我不知道这对您是否重要。

让我们从一个示例开始,其中查看图像与日期相关(并在1月1日重置)

##maybe you would like to set the timezone
##date_default_timezone_set('America/Los_Angeles');

$dayOfTheYear = date('z');  
$iterationCount = ceil($dayOfTheYear / 3);
$numberForIteration = $iterationCount % 8;

echo '<img alt="" src="'.$numberForIteration.'.jpg" />';
## prints for example: <img alt="" src="6.jpg" />

我们可以在此基础上建立并选择不同的开始日期,这意味着不是1月1日,而是另一个日期是开始日期。

## PHP Version should be above June 2012

$startDate = new DateTime("2014-07-01");
$currentDate = new DateTime();

$daysSinceStart = $startDate->diff($currentDate)->days;
$iterationCount = ceil($daysSinceStart / 3);
$numberForIteration = $iterationCount % 8;

echo '<img alt="" src="'.$numberForIteration.'.jpg" />';

希望它有所帮助。

大卫