Php y=3; $hours=12; $time_block=60*60*$hours; $time_now=strottime('now'); $block\u num=地板($time\u now/$time\u block)%$num\u图像; $images=array(); 对于($x=1;$x$num\u图像)$image\u num=$image\u num%$num\u图像; $images[$x]=$images\u num'。巴布亚新几内亚'; }

Php y=3; $hours=12; $time_block=60*60*$hours; $time_now=strottime('now'); $block\u num=地板($time\u now/$time\u block)%$num\u图像; $images=array(); 对于($x=1;$x$num\u图像)$image\u num=$image\u num%$num\u图像; $images[$x]=$images\u num'。巴布亚新几内亚'; },php,html,Php,Html,我不会运行cron。我会这样做: $num_images = 20; $images_display = 3; $hours = 12; $time_block = 60 * 60 * $hours; $time_now = strtotime('now'); $block_num = floor($time_now / $time_block) % $num_images; $images = array(); for($x=1;$x<=$images_display;$x++) {

我不会运行cron。我会这样做:

$num_images = 20;
$images_display = 3;
$hours = 12;
$time_block = 60 * 60 * $hours;
$time_now = strtotime('now');
$block_num = floor($time_now / $time_block) % $num_images;

$images = array();
for($x=1;$x<=$images_display;$x++) {
        $image_num = $block_num + $x;
        if($image_num > $num_images) $image_num = $image_num % $num_images;
        $images[$x] = $image_num . '.png';
}
$num_images=20;
$images\u display=3;
$hours=12;
$time_block=60*60*$hours;
$time_now=strottime('now');
$block\u num=地板($time\u now/$time\u block)%$num\u图像;
$images=array();
对于($x=1;$x$num\u图像)$image\u num=$image\u num%$num\u图像;
$images[$x]=$images\u num'。巴布亚新几内亚';
}

这可以在简单的PHP中完成(因为您提到了PHP)

$numOfImages=20;
$unit=日期('j')*2;//每月的第二天,加倍模拟12小时的时间段。
如果(日期('G')<12){//0-23小时
美元单位--;
}
$image1=$unit%$numOfImages;
$image2=($unit+1)%$numOfImages;
$image3=($unit+2)%$numOfImages;
var_dump($image1);
var_dump($2);
var_dump($3);

这可以在简单的PHP中完成(因为您提到了PHP)

$numOfImages=20;
$unit=日期('j')*2;//每月的第二天,加倍模拟12小时的时间段。
如果(日期('G')<12){//0-23小时
美元单位--;
}
$image1=$unit%$numOfImages;
$image2=($unit+1)%$numOfImages;
$image3=($unit+2)%$numOfImages;
var_dump($image1);
var_dump($2);
var_dump($3);


您可以每12小时重新加载一次页面并发送下一张图像。这是你需要的吗?查一下时间。如果在00:00和12:00之间,使用第一组。否则,使用第二组。用So检查当前日期和时间,如果我现在加载到你的网页,它显示1,2,3,如果我在12小时内加载,它应该显示2,3,4。我说的对吗?@ATOzTOA没错。你可以每12小时重新加载一次页面,然后发送下一张图片。这是你需要的吗?查一下时间。如果在00:00和12:00之间,使用第一组。否则,使用第二组。用So检查当前日期和时间,如果我现在加载到你的网页,它显示1,2,3,如果我在12小时内加载,它应该显示2,3,4。我说得对吗?@ATOzTOA说得对。尽量避免写cron作业。还有第二种选择吗?您应该在问题中提到这一点,以便人们知道在找到此页面时答案不会使用cron:)您可以让页面检查用户打开页面的时间。有一个从第一天开始硬编码的“开始”时间,计算出从这一时间起已经过去了多少小时,将该数字除以12,并将其用作img
src
属性中的图像编号?试图避免编写cron作业。还有第二种选择吗?您应该在问题中提到这一点,以便人们知道在找到此页面时答案不会使用cron:)您可以让页面检查用户打开页面的时间。有一个从第一天开始硬编码的“开始”时间,计算出从这一时间起已经过去了多少小时,将该数字除以12,并将其用作img
src
属性中的图像编号?这是假设文件名为1.png、2.png等。。。此外,您还可以通过扫描特定目录中的文件数轻松地使
$num_images
动态化。这是假设文件名为1.png、2.png等。。。此外,您还可以通过扫描特定目录中的文件数量,轻松地使
$num_images
成为动态的。这非常有效。谢谢:)很好用。谢谢:)
include "img_config.php"
$current_nr = (++$current_image)%20+1;
file_put_contents("img_config.php",'$current_image = '.$current_nr.';');
1.png
2.png
3.png
Read content of last_change.txt

If the content *plus* 12 hours *is less than* current time

    Change images

    Put current time to last_change.txt

Done
function changeStartpageImage() {
    // change the image every x hours
    $hours = 170;
    $fileinfo = stat("images/startseite/startseitenbild.jpg");
    if (time() - $fileinfo['mtime'] < ($hours * 60* 60)) {
        return;
    }

    $handler = opendir("images/startseite/");
    $results = array();

    while ($file = readdir($handler)) {
        if (substr($file, 0, 1) != "." && $file != "startseitenbild.jpg" ) {
            $results[] = $file;
        }
    }
    $newFile = $results[array_rand($results)];
    copy("images/startseite/".$newFile, "images/startseite/startseitenbild.jpg");

    closedir($handler);
}
$now = time(); // you can simulate adding 12 hours +3600*12

$base = round( $now/(3600*12) ); // this number change every 12 hours

$n_images = 20; // number of your images

$start_from = $base % $n_images; // start from $start_from image

// loop for get your 4 images (3,4,5,6 or 4,5,6,7 or ,18,19,20,1,2 etc.)
for($i = 0; $i < 4; $i++) {
    $image = ($start_from+$i) % $n_images + 1;
    echo "get image " . $image.".jpg<br/>";
}
$num_images = 20;
$images_display = 3;
$hours = 12;
$time_block = 60 * 60 * $hours;
$time_now = strtotime('now');
$block_num = floor($time_now / $time_block) % $num_images;

$images = array();
for($x=1;$x<=$images_display;$x++) {
        $image_num = $block_num + $x;
        if($image_num > $num_images) $image_num = $image_num % $num_images;
        $images[$x] = $image_num . '.png';
}
$numOfImages = 20;
$unit = date('j') * 2; // Day of the month, doubled to simulate chunks of 12 hours.
if (date('G') < 12) { // Hours 0 - 23
    $unit--;
}

$image1 = $unit % $numOfImages;
$image2 = ($unit + 1) % $numOfImages;
$image3 = ($unit + 2) % $numOfImages;

var_dump($image1);
var_dump($image2);
var_dump($image3);