Php 日期差计算不起作用
我有下面的代码,它根据天数的差异计算“博格”的数量。我回显了我的Php 日期差计算不起作用,php,date,Php,Date,我有下面的代码,它根据天数的差异计算“博格”的数量。我回显了我的$days变量,以检查差异有多少天。根据这一点,我有一个特定的一天的差异是38天。为什么当我echo$borg时,它仍然显示0的数量?在本例中,$days=38 $vandaag = date($format, strtotime('today')); $verschil = $interval->d; $diff = strtotime($retourdatum) - strtotime($vandaag); $days
$days
变量,以检查差异有多少天。根据这一点,我有一个特定的一天的差异是38天。为什么当我echo$borg
时,它仍然显示0的数量?在本例中,$days=38
$vandaag = date($format, strtotime('today'));
$verschil = $interval->d;
$diff = strtotime($retourdatum) - strtotime($vandaag);
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
echo $days;
if($days > 0)
{
$borg = 80;
}
if($days<0 && $days>-7)
{
$borg = 65;
}
if($days>-7 && $days<-14)
{
$borg = 50;
}
if($days>-14 && $days<-21)
{
$borg = 35;
}
if($days>-21 && $days<-28)
{
$borg = 20;
}
if($days>-28 && $days<-35)
{
$borg = 5;
}
else
{
$borg = 0;
}
$vandaag=date($format,strotime('today');
$verschil=$interval->d;
$diff=strotime($retourdatum)-strotime($vandaag);
$days=下限($diff-$year*365*60*60*24-$month*30*60*60*24)/(60*60*24));
回声$天;
如果($days>0)
{
$borg=80;
}
如果(天-7)
{
$borg=65;
}
如果($days>-7&&$days-14&&$days-21&&$days-28&&$days,因为您的最后一个else
将始终将$borg
设置为0,除非对其相应的if
进行了评估
解决方案是在所有if
语句之前定义$borg=0;
,然后去掉else
语句
$borg = 0;
if( ... )
{
}
...
因为您的上一个else
将始终将$borg
设置为0,除非对其相应的if
进行了计算
解决方案是在所有if
语句之前定义$borg=0;
,然后去掉else
语句
$borg = 0;
if( ... )
{
}
...
我真的不明白你在计算什么,但我清楚地看到为什么你在博格总是有0
以下代码应该可以解决您的问题:
$vandaag = date($format, strtotime('today'));
$verschil = $interval->d;
$diff = strtotime($retourdatum) - strtotime($vandaag);
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
echo $days;
if($days > 0)
{
$borg = 80;
}
elseif($days<0 && $days>-7)
{
$borg = 65;
}
elseif($days>-7 && $days<-14)
{
$borg = 50;
}
elseif($days>-14 && $days<-21)
{
$borg = 35;
}
elseif($days>-21 && $days<-28)
{
$borg = 20;
}
elseif($days>-28 && $days<-35)
{
$borg = 5;
}
else
{
$borg = 0;
}
$vandaag=date($format,strotime('today');
$verschil=$interval->d;
$diff=strotime($retourdatum)-strotime($vandaag);
$days=下限($diff-$year*365*60*60*24-$month*30*60*60*24)/(60*60*24));
回声$天;
如果($days>0)
{
$borg=80;
}
埃尔塞伊夫(天-7美元)
{
$borg=65;
}
如果($days>-7&&$days-14&&$days-21&&$days-28&&$days我不太明白你在计算什么,但我清楚地明白为什么你在博格总是有0
以下代码应该可以解决您的问题:
$vandaag = date($format, strtotime('today'));
$verschil = $interval->d;
$diff = strtotime($retourdatum) - strtotime($vandaag);
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
echo $days;
if($days > 0)
{
$borg = 80;
}
elseif($days<0 && $days>-7)
{
$borg = 65;
}
elseif($days>-7 && $days<-14)
{
$borg = 50;
}
elseif($days>-14 && $days<-21)
{
$borg = 35;
}
elseif($days>-21 && $days<-28)
{
$borg = 20;
}
elseif($days>-28 && $days<-35)
{
$borg = 5;
}
else
{
$borg = 0;
}
$vandaag=date($format,strotime('today');
$verschil=$interval->d;
$diff=strotime($retourdatum)-strotime($vandaag);
$days=下限($diff-$year*365*60*60*24-$month*30*60*60*24)/(60*60*24));
回声$天;
如果($days>0)
{
$borg=80;
}
埃尔塞伊夫(天-7美元)
{
$borg=65;
}
elseif($days>-7&&$days-14&&$days-21&&$days-28&&$days您应该使用elseif。您执行每个if计算,然后以if/else状态结束。结果是$borg可以是5或0
if($days > 0)
$borg = 80;
elseif($days<0 && $days>-7)
$borg = 65;
elseif($days>-7 && $days<-14)
$borg = 50;
elseif($days>-14 && $days<-21)
$borg = 35;
elseif($days>-21 && $days<-28)
$borg = 20;
elseif($days>-28 && $days<-35)
$borg = 5;
else
$borg = 0;
if($days>0)
$borg=80;
埃尔塞伊夫(天-7美元)
$borg=65;
elseif($days>-7&&$days-14&&$days-21&&$days-28&&$days您应该使用elseif。您执行每个if计算,然后以if/else状态结束。结果是$borg可以是5或0
if($days > 0)
$borg = 80;
elseif($days<0 && $days>-7)
$borg = 65;
elseif($days>-7 && $days<-14)
$borg = 50;
elseif($days>-14 && $days<-21)
$borg = 35;
elseif($days>-21 && $days<-28)
$borg = 20;
elseif($days>-28 && $days<-35)
$borg = 5;
else
$borg = 0;
if($days>0)
$borg=80;
埃尔塞伊夫(天-7美元)
$borg=65;
如果($days>-7&&$days-14&&$days-21&&$days-28&&$days您的最后两个条件块是此特定问题的原因:
最后两个条件块是此特定问题的原因:
我真的那么蠢吗?谢谢!被困了两个小时。(我真的那么蠢吗?)谢谢!被困了两个小时:(