2013-04-10 93 views
0

我想设置我的输出为“日期未确认”,如果从MySQL的日期= 2013-12-25 & $ daydiff =“任何”,并输出“不可用”如果MySQL date =“NULL”& and $ daydiff =“anything”日期范围到PHP在几个月

我的代码似乎不工作,任何建议或替代?

$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 =''; 
} 
+0

你想用'%wildcard%'做什么? – 2013-04-10 09:35:15

+0

这是为了任何价值。 – Mlungisi 2013-04-10 09:54:08

+0

那么为什么把它放在if里,如果有价值的话呢?是0还可以接受吗? – 2013-04-10 10:08:35

回答

0

那么你是分配变量在你的if子句......单一“=”是分配。我假设你想检查,所以你需要“==”:)

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

elseif (is_null($ArrivalDate) || $ArrivalDate == 'NULL') { 
    $ETA ='Not available'; 
} 
+0

谢谢,我已经尝试了“==”,但仍然没有获胜:( – Mlungisi 2013-04-10 09:36:39

+0

好的,但是你的ouptut有什么样的可能性?'%wildcard%'来自哪里? – Chris 2013-04-10 09:38:45

+0

'%wildcard%'=任何值或任何东西,如-9或8 – Mlungisi 2013-04-10 09:41:53

0

你的输出是什么?总是“日期未确认”?

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

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

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

可是, '%通配符%' 是不是,PHP替换由'什么”。那么,你确切的错误是什么?如果没关系,那么$ daydiff是什么,只是让它脱离你的状态。

+0

谢谢@jens - 我试过“==”但没有得到结果。没有错误,但我无法获得所需的结果。 $ daydiff是天数,我不想放55天,但我宁愿在2个月或2个月内说。 – Mlungisi 2013-04-10 09:40:20