Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP未计算正确的日期_Php_Datetime_Datetime Format - Fatal编程技术网

PHP未计算正确的日期

PHP未计算正确的日期,php,datetime,datetime-format,Php,Datetime,Datetime Format,我有这个代码,它没有返回正确的图像,在一天中的某个时间,我需要一个图像来更改。然而,代码没有把正确的形象,封面工程,我做了错误的日期和时间 <?php // H = hour // i = minute // n = day of the week $dj = 'cover'; if(date("Hin", time()) == '06001'){ $dj = 'test1'; } elseif(date("Hin", time()) == '06002'){ $dj = 'test1

我有这个代码,它没有返回正确的图像,在一天中的某个时间,我需要一个图像来更改。然而,代码没有把正确的形象,封面工程,我做了错误的日期和时间

<?php

// H = hour
// i = minute
// n = day of the week

$dj = 'cover';
if(date("Hin", time()) == '06001'){ $dj = 'test1'; }
elseif(date("Hin", time()) == '06002'){ $dj = 'test1'; }
elseif(date("Hin", time()) == '14006'){ $dj = 'test3'; }

// 06001 = Monday at 06:00
// 06002 = Tuesday at 06:00
// 14006 = Saturday at 13:00

?>

<img class="cover" src="img/djs/<?php echo $dj; ?>.png" alt="DJ <?php echo $dj; ?>" />

.png“alt=”DJ“/>

n
不是一周中的哪一天。它是一个月的数字表示,没有前导零(1到12)

我想这是你的问题

如果你想要一周中的某一天,你必须使用大写字母
N

因此,您的代码如下所示:

<?php

// H = hour
// i = minute
// N = day of the week

$dj = 'cover';
if(date("HiN", time()) == '06001'){ $dj = 'test1'; }
elseif(date("HiN", time()) == '06002'){ $dj = 'test1'; }
elseif(date("HiN", time()) == '14006'){ $dj = 'test3'; }

// 06001 = Monday at 06:00
// 06002 = Tuesday at 06:00
// 14006 = Saturday at 13:00

?>

<img class="cover" src="img/djs/<?php echo $dj; ?>.png" alt="DJ <?php echo $dj; ?>" />

.png“alt=”DJ“/>

我相信您要做的是在这两个时间间隔内显示图像。如果是这种情况,请尝试以下操作:

<?php
$dj = 'cover';
$day = date("N", time());
$time = (date("H") * 60) + date("i"); // current time in minutes
switch($day) {
    case 1: // Monday
        if($time >= 360) {
            $dj = 'test1';
        }
        break;
    case 2: // Tuesday
        if($time >= 360) {
            $dj = 'test1';
        }
        break;
    case 6: // Saturday
        if($time >= 840) {
            $dj = 'test3';
        }
        break;
}
echo sprintf('<img class="cover" src="img/djs/%s.png" alt="DJ %s" />', $dj, $dj);

test1、test2和test3在给定的时间精确地显示,意思是06:00,而不是06:01,这实际上是您想要的吗?因为这就是代码所做的Franz-问题是我没有做大写字母“N”,是的,这也是一个问题,我最后删除了分钟数,所以图像每小时显示一次,否则它期望每分钟都有一个图像。嘿,这对我所做的有点高级,因为会有数千行代码哈哈!不过谢谢。不幸的是,我是一个傻瓜,这是我的资本,哈哈!谢谢:D
<?php
$dj = 'cover';
$day = date("N", time());
$time = (date("H") * 60) + date("i"); // current time in minutes
switch($day) {
    case 1: // Monday
    case 2: // Tuesday
        if($time >= 360) {
            $dj = 'test1';
        }
        break;
    case 6: // Saturday
        if($time >= 840) {
            $dj = 'test3';
        }
        break;
}
echo sprintf('<img class="cover" src="img/djs/%s.png" alt="DJ %s" />', $dj, $dj);