使用php中的if语句比较日期值

时间:2017-03-19 13:21:04

标签: php html date

我想比较2个日期值,如果满足条件,则让它显示特定值。我使用下面的代码,但它不起作用。看起来我没有很好地得到日期比较。

我想要实现的是这个。如果date1超过3个月或者date2超过6个月,则让它显示一些东西,但是如果它不显示另一个。

我在这里使用if语句。

<?php

$levcon = $row_rsRecord['level'];
$semcon = $row_rsCourse['semester'];
$d = $row_rsCourse['date'];
$dae = strtotime($row_rsCourse['date']);
$dae1 = date("Y-m-d", strtotime("+3 months", $dae));
$daet = strtotime($row_rsCourse['date']);
$daet1 = date("Y-m-d", strtotime("+6 months", $daet));

if(($semcon == 1) && ($dae1 < $d) || ($semcon == 2) && ($daet1 < $d) ) { ?>
<a href="printout.php">
    <span class="fa-stack fa-4x">
        <i class="fa fa-circle fa-stack-2x text-danger"></i>
        <i class="fa fa-suitcase fa-stack-1x fa-inverse"></i>
    </span>
</a>

<?php } else { ?>

<a href="coursereg.php">
    <span class="fa-stack fa-4x">
        <i class="fa fa-circle fa-stack-2x text-danger"></i>
        <i class="fa fa-suitcase fa-stack-1x fa-inverse"></i>
    </span>
</a>

<?php } ?>

1 个答案:

答案 0 :(得分:0)

我无法解决整个问题,因为我发现dae,dae1,daet和daet1相当混乱,而且我不知道$row_rsCourse['date']包含什么内容?

我尝试过清理它。

  1. 将一些变量重命名为更具描述性的变量。

  2. $ dae和$ daet是相同的,所以我删除了其中一个,并重命名了剩下的一个dateUnix,因为它是$row_rsCourse['date']中任何内容的unix时间表示。

  3. 我将if语句的两个子句加入到一个块中,使用echo在其间打印HTML。

  4. 如果它只需要检查它是否大于6,否则做其他事情也可能只检查大于6并且有一个else子句处理其他情况。现在我把这两个条件分成if和elseif,假设两者都是假的,就不应该做。

  5. &LT;和&gt;比{&amp;&amp;,||更大operator precedence和==,所以if语句中的一些括号不需要在那里。

  6. <?php 
    $levcon = $row_rsRecord['level'];
    $semcon = $row_rsCourse['semester'];
    $date = $row_rsCourse['date'];
    $dateUnix = strtotime($date);
    $threeMonths = date("Y-m-d", strtotime("+3 months", $dateUnix));
    $sixMonths = date("Y-m-d", strtotime("+6 months", $dateUnix));
    
    if ($semcon == 1 && $sixMonths < $date) {
      echo '<a href="printout.php"><span class="fa-stack fa-4x">
          <i class="fa fa-circle fa-stack-2x text-danger"></i>
          <i class="fa fa-suitcase fa-stack-1x fa-inverse"></i>
      </span></a>';
    }
    elseif ($semcon == 2 && $threeMonths < $date) {
      echo '<a href="coursereg.php"><span class="fa-stack fa-4x">
        <i class="fa fa-circle fa-stack-2x text-danger"></i>
        <i class="fa fa-suitcase fa-stack-1x fa-inverse"></i>
      </span></a>';
    }
    ?>
    

    我没有这样做,因为我不完全理解你的问题/变量,但你应该在所有这些日期之前调用strtotime作为比较它们的最后一步。