[英]Date range to months in PHP
I'm trying to set my output to “Date not confirmed” if the date from MySQL = 2013-12-25 & $daydiff = "anything" and output "Not available" if the MySQL date = "NULL" & and $daydiff = "anything" 如果MySQL日期= 2013-12-25&$ daydiff =“ anything”,我试图将输出设置为“ Date not Confirmed”,如果MySQL日期=“ NULL”&和$ daydiff,则输出“ Not available” =“任何东西”
My code below doesn't seem to work, any suggestions or alternatives? 我的以下代码似乎无效,有任何建议或替代方法吗?
$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 ='';
}
Well you are assign variables in your if clauses... Single "=" is assigning. 好吧,您可以在if子句中分配变量。 I assume you want to check so you need "==" :)
我假设您要检查,所以您需要“ ==” :)
if (!empty($daydiff) && $ArrivalDate == '2013-12-25') {
$ETA ='Date Not Confirmed';
}
elseif (is_null($ArrivalDate) || $ArrivalDate == 'NULL') {
$ETA ='Not available';
}
What is your output? 你的输出是什么? Always "Date Not Confirmed"?
总是“未确认日期”吗?
I would guess so, because "=" does not compare strings: 我猜是这样,因为“ =”不比较字符串:
if ( $daydiff = '%wildcard%' && $ArrivalDate = '2013-12-25') {
$ETA ='Date Not Confirmed';
}
would be 将会
if ( $daydiff == '%wildcard%' && $ArrivalDate == '2013-12-25') {
$ETA ='Date Not Confirmed';
}
But then, '%wildcard%' is not something, PHP replaces by 'anything'. 但是,“%wildcard%”就不算什么了,PHP替换为“任何东西”。 So, what is your exact error?
那么,您的确切错误是什么? If it does not matter, what $daydiff is, just leave it out of your condition.
如果没关系,$ daydiff是什么,就不要理会它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.