我正在创建一个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;
有人可以告诉我这段代码有什么问题。
提前感谢大家的宝贵时间。
答案 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" />';
希望它有所帮助。
大卫