PHP中的日期范围为个月

PHP中的日期范围为个月,php,if-statement,operators,Php,If Statement,Operators,如果MySQL的日期=2013-12-25&$daydiff=“anything”,我试图将我的输出设置为“datenotconfirm”,如果MySQL的日期=NULL”和$daydiff=“anything”,则输出为“notavailable” 我下面的代码似乎不起作用,有什么建议或替代方案吗 $ArrivalDate == $variants_data['ArrivalDate']; $daydiff=floor((abs(strtotime(date("Y-m-d")) - strt

如果MySQL的日期=2013-12-25&$daydiff=“anything”,我试图将我的输出设置为“datenotconfirm”,如果MySQL的日期=NULL”和$daydiff=“anything”,则输出为“notavailable”

我下面的代码似乎不起作用,有什么建议或替代方案吗

$ArrivalDate == $variants_data['ArrivalDate'];

$daydiff=floor((abs(strtotime(date("Y-m-d")) - strtotime($ArrivalDate))/(60*60*24)));


if ( $daydiff == '%wildcard%' && $ArrivalDate == '2013-12-25') {
    $ETA ='Date Not Confirmed';
} 

elseif ( $daydiff == '%wildcard%' && $ArrivalDate == 'NULL') {
    $ETA ='Not available';
}

elseif ( $daydiff > 30 && $daydiff < 60 ) { // anything between 31 and 59 days is 1 month
    $ETA ='1 Month';
}

elseif ( $daydiff > 60 &&  $daydiff < 90  )  { // anything between 61 and 89 days is 2 months
    $ETA ='2 Months';
}

else
{
    $ETA ='';
}
$ArrivalDate==$variants\u数据['ArrivalDate'];
$daydiff=楼层((abs(标准时间(日期)(“Y-m-d”)-标准时间($ArrivalDate))/(60*60*24));
如果($daydiff=='%wildcard%&&$ArrivalDate=='2013-12-25'){
$ETA=‘日期未确认’;
} 
elseif($daydiff==“%wildcard%”和&$ArrivalDate=='NULL'){
$ETA=‘不可用’;
}
elseif($daydiff>30&$daydiff<60){//31到59天之间的任何时间都是1个月
$ETA='1个月';
}
elseif($daydiff>60&$daydiff<90){//在61到89天之间的任何时间都是2个月
$ETA='2个月';
}
其他的
{
$ETA='';
}

好吧,您正在if子句中分配变量。。。单个“=”正在赋值。我假设您要检查,所以需要“==”:)


你的产出是多少?总是“日期未确认”

我想是这样,因为“=”不比较字符串:

if ( $daydiff = '%wildcard%' && $ArrivalDate = '2013-12-25') {
    $ETA ='Date Not Confirmed';
} 
会是

if ( $daydiff == '%wildcard%' && $ArrivalDate == '2013-12-25') {
    $ETA ='Date Not Confirmed';
} 

但是,“%wildcard%”不是什么东西,PHP用“anything”代替。那么,你的确切错误是什么?如果没有关系,$daydiff是什么,就不要考虑它。

你想用“%wildcard%”做什么?这是任何值的值。那么,如果任何值都可以,为什么要将它放在If中呢?也可以接受0吗?好的,但您的输出是什么样的?“%wildcard%”从何而来?“%wildcard%”=任何值或任何东西,例如-9或8Ya,但您正在检查$daydiff是否等于“%wildcard%”。如果($daydiff>=-9&&$daydiff不,他想要的是!空($daydiff)或者甚至$daydiff!=0$daydiff!=0$daydiff是计算的结果,所以它不是固定值。它可以是任何值。谢谢@jens-我已经尝试过了”==”但是没有得到结果。没有错误,但我无法得到所需的结果。$daydiff是天数,我不想把ie放在55天内,但我宁愿在2个月或2个月内。
if ( $daydiff == '%wildcard%' && $ArrivalDate == '2013-12-25') {
    $ETA ='Date Not Confirmed';
}