视星期几和时间范围而定

问题描述 投票:0回答:2

我正在尝试根据星期几和当天的时间范围找到条件的解决方案。我已经设法在一周中的某一天找到了代码,但是我找不到如何在一天中纳入时间范围?

例如:

IF today is Monday AND between 2pm and 4pm THEN do THIS

这就是我所拥有的...

<?php   
date_default_timezone_set('Australia/Perth'); // PHP supported timezone
$script_tz = date_default_timezone_get();
// get current day:
$currentday = date('l'); ?>
<?php if ($currentday == Monday){ ?>
Monday
<?php } elseif ($currentday == Tuesday){ ?>
Tuesday
<?php } elseif ($currentday == Wednesday){ ?>
Wednesday
<?php } elseif ($currentday == Thursday){ ?>
Thursday
<?php } elseif ($currentday == Friday){ ?>
Friday
<?php } elseif ($currentday == Saturday){ ?>
Saturday
<?php } elseif ($currentday == Sunday){ ?>
Sunday
<?php } else { ?>
<?php } ?>

我不确定这是否对时限有所帮助?Check day of week and time

php if-statement time conditional-statements dayofweek
2个回答
0
投票

您可以使用不同的日期/时间组件来简化代码:

function between($value, $start, $end)
{
    return $value > $start && $value <= $end;
}

$hours = date("G");

switch( date("N"))
{
    case 1:  //monday
        if (between($hours,12 + 2,12 + 4 )) //using 24h format to avoid checking am/pm
        {
            // IF today is Monday AND between 2pm and 4pm THEN do THIS
        }
    break;

    case 2: //tuesday
    break;


    //....

}

0
投票

基本上是这样:

<?php

if (date('l') === 'Monday' && date('G') >= 2 && date('G') < 4) {
    // do something
}

您在日期名称周围缺少引号。

我写的条件将在星期一下午2点到下午4点之间评估为true(而下午4点本身不会,例如,最后允许的值为3:59 PM。

© www.soinside.com 2019 - 2024. All rights reserved.