检查两个日期之间的日期

hem*_*mar 0 php date strtotime date-difference

我必须检查收到的日期是否在今天之前的3到6个月之间.如果超出此范围,则必须执行某些代码.

下面是代码

<?php

$date1 = '22-10-2017';
$date2 = date('d-m-Y' , strtotime('-3 months'));
$date3 = date('d-m-Y' , strtotime('-6 months'));
if((strtotime($date1) < strtotime($date2)) || (strtotime($date1) > strtotime($date3))){
    echo "Inside Range";
}else echo "Out of Range";

?>
Run Code Online (Sandbox Code Playgroud)

例如,如果

  1. 传入日期是20-02-2018 - 超出范围.
  2. 传入日期为20-10-2017 - 内部范围.
  3. 传入日期是20-08-2017 - 超出范围.

Kri*_*ish 5

你与检查|| 你的情况,你需要使用&&,因为你需要日期

$date1 = '20-08-2017';
$date2 = date('d-m-Y' , strtotime('-3 months'));
$date3 = date('d-m-Y' , strtotime('-6 months'));
if((strtotime($date1) <= strtotime($date2)) && (strtotime($date1) >= strtotime($date3))){
    echo "Inside Range";
}else { 
   echo "Out of Range";
}
Run Code Online (Sandbox Code Playgroud)

说明:需要将您的状况if((strtotime($date1) < strtotime($date2)) || (strtotime($date1) > strtotime($date3)))改为if((strtotime($date1) <= strtotime($date2)) && (strtotime($date1) >= strtotime($date3))){

如果您使用DateTime对象,它也会变得非常容易:

$date1 = new DateTime('20-08-2017');
$date2 = new DateTime('-3 months');
$date3 = new DateTime('-6 months');

if($date1 < $date2 && $date1 > $date3) {
    echo "Inside Range";
} else {
    echo "Out of Range";
}
Run Code Online (Sandbox Code Playgroud)