Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 日期差计算不起作用_Php_Date - Fatal编程技术网

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您的最后两个条件块是此特定问题的原因:


最后两个条件块是此特定问题的原因:


我真的那么蠢吗?谢谢!被困了两个小时。(我真的那么蠢吗?)谢谢!被困了两个小时:(