我想比较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 } ?>
答案 0 :(得分:0)
我无法解决整个问题,因为我发现dae,dae1,daet和daet1相当混乱,而且我不知道$row_rsCourse['date']
包含什么内容?
我尝试过清理它。
将一些变量重命名为更具描述性的变量。
$ dae和$ daet是相同的,所以我删除了其中一个,并重命名了剩下的一个dateUnix,因为它是$row_rsCourse['date']
中任何内容的unix时间表示。
我将if语句的两个子句加入到一个块中,使用echo
在其间打印HTML。
如果它只需要检查它是否大于6,否则做其他事情也可能只检查大于6并且有一个else子句处理其他情况。现在我把这两个条件分成if和elseif,假设两者都是假的,就不应该做。
&LT;和&gt;比{&amp;&amp;,||更大operator precedence和==,所以if语句中的一些括号不需要在那里。
<?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作为比较它们的最后一步。