我试图检查日期范围(转换为Unix时间戳)是否在保存的日期范围内。目的是查看已购买的产品订购或客户购物车中是否与新选择的商品发生冲突。
我可以测试一个' date'在一个日期范围内,但没有显示如何检查范围内的范围.. ??
例如,以下代码将告知输入的日期是否在测试日期范围内:
<?php
$startDate = strtotime("10/12/2014");
$endDate = strtotime("10/25/2014");
?>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$targetDate = strtotime($_POST['testDate']);
if (($targetDate >= $startDate) && ($targetDate <= $endDate)) {
$showMe = 'trueness';
}
else {
$showMe = 'false';
}
}
?>
<form name="form1" method="post" action="">
<input type="text" id="testDate" name="testDate" value="<?php echo date("m-d-Y", $targetDate); ?>">
<input type="submit" name="submit" id="submit" value="Submit"><?php echo date("m-d-Y", $targetDate); ?>
</form>
<p><?php echo 'Result: '. $showMe; ?></p>
基本上我们可以查看日期以查看它是否在日期范围内,但如何检查两个单独的日期范围是否相交?
答案 0 :(得分:0)
如果您有两组日期范围($ startDate到$ endDate和$ targetStartDate到$ targetEndDate),这是检查交叉点的方法......
if ($targetEndDate >= $startDate && $targetStartDate <= $endDate)
{
$showMe = 'trueness';
}
else
{
$showMe = 'false';
}
您可以调整&gt; =和&lt; =如果有特殊情况,如果它们仅在开始/结束日期相交,则不要认为它相交。