首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示内容的所有日子,除了在星期三之间的特定时间

显示内容的所有日子,除了在星期三之间的特定时间
EN

Stack Overflow用户
提问于 2014-09-04 02:00:02
回答 4查看 66关注 0票数 0

我试着每天显示一个div,除了周三下午3点,科技委和午夜之间,或11:59在同一个星期三。下面是我到目前为止不起作用的代码吗?这是我第一次使用if日期函数,所以这对我来说都是新的。

代码语言:javascript
复制
<?php 
if (date('w') == '1' | == '2' | == '4' | == '5' | == '6' | == '0') {
    //info to show Mon, Tue, Thur, Fri, Sat, Sun all day. 
  }
else if (date('w') == 3){
 if (date('H') >= 15 && date('H') < 0) {
    //Content to show on Wednesday from 3pm to midnight 
 }
}
?>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-04 02:06:21

|是位运算符。||是逻辑OR运算符。

PHP运算符

另外,这里有一个更有效的版本,您想要的是:

代码语言:javascript
复制
if (date('w') == 3) {
    if (date('H') >= 15) {
        //Content to show on Wednesday from 3pm to midnight 
    }
} else {
    //info to show Mon, Tue, Thur, Fri, Sat, Sun all day. 
}
票数 3
EN

Stack Overflow用户

发布于 2014-09-04 02:05:35

如果您的比较在每种情况下都需要日期变量,最好是使用一个临时数组来检查:

代码语言:javascript
复制
if(in_array(date('w'), array(0, 1, 2, 4, 5, 6))) {
    // info to show except Wed
} else {
    // w is 3
    if(date('H') >= 15) {
        // Content to show on Wed from 3pm to midnight
    }
}

注意:

  • 因为您已经在第一个子句中指定了所有其他可能的情况,所以第二个子句中的日期将为3。
  • 小时永远不会小于零,但如果是下午3点到午夜之间,它总是大于15,所以去掉了第二部分。
票数 2
EN

Stack Overflow用户

发布于 2014-09-04 02:08:51

用于比较不同值的语法都是错误的。您必须重复比较,并将它们与布尔or运算符||组合起来。

代码语言:javascript
复制
$w = date('w');

if ($w == 1 || $w == 2 || $w == 4 || $w == 5 || $w == 6 || $w == 0) {
    //info to show Mon, Tue, Thur, Fri, Sat, Sun all day. 
} else if ($w == 3 && date('H') >= 15) {
    //Content to show on Wednesday from 3pm to midnight
}

当然,您也可以将第一个条件简化为if ($w != 3)

你的测试date('H') < 0永远不可能是真的--时钟上没有负面的时间。我想你是指< 24,但这是不必要的,因为所有的时间都不到24小时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25656225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档