除了星期三下午3点CST&午夜或同一个星期三晚上11:59。以下是到目前为止我没有工作的代码?这是我第一次使用if日期功能,所以这对我来说是全新的
<?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
}
}
?>
|
是按位运算符。||
是逻辑OR运算符。
PHP运算符。
此外,这里还有一个更高效的版本:
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.
}
如果比较在每种情况下都需要日期变量,最好使用临时数组进行检查:
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
}
}
注意:
- else是隐含的,因为您已经在第一个子句中指定了所有其他可能性,所以天数将为3
- 小时永远不会小于零,但如果是在下午3点到午夜之间,它总是会大于15,所以删除了第二部分
与不同值进行比较的语法都是错误的。您必须重复比较,并将它们与布尔or
运算符||
组合
$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小时。
我可以看到三件不正确的事情:
| ==
应该是|| ==
,但我已经简化为一个if
语句,因为你似乎只想知道它是否在周三下午3点之后- 从逻辑上讲,你不可能是
>= 15 && <0
——所以这永远不会是真的 date()
函数返回一个字符串,您正在与整数== 3
进行比较(PHP可能会很好地处理类型,但我已经为皮带和大括号方法引入了intval())
试试这个:
<?php
if (intval(date('w')) == 3 && intval(date('H')) >= 15) {
// it's after 3pm on a Wed...
}
?>