首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查两个日期之间的日期

检查两个日期之间的日期
EN

Stack Overflow用户
提问于 2018-02-22 17:25:48
回答 2查看 5K关注 0票数 0

我必须在今天之前的3到6个月内检查来函日期。如果超出此范围,则必须执行某些代码。

下面是代码

代码语言:javascript
复制
<?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";

?>

例如,如果

  1. 即将到来的日期是20-02-2018 -超出范围。
  2. 即将到来的日期是20-10-2017 -在范围内。
  3. 即将到来的日期是20-08-2017 -超出范围。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-22 17:41:53

在您的情况下,您需要使用||,因为您需要在之间使用日期

代码语言:javascript
复制
$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";
}

说明:需要将条件从if((strtotime($date1) < strtotime($date2)) || (strtotime($date1) > strtotime($date3)))更改为if((strtotime($date1) <= strtotime($date2)) && (strtotime($date1) >= strtotime($date3))){

如果您使用的是DateTime对象,那么它也要容易得多:

代码语言:javascript
复制
$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";
}
票数 7
EN

Stack Overflow用户

发布于 2018-02-22 17:47:25

你可以这样做:

代码语言:javascript
复制
$today=date_create(date("Y-m-d"));
$date=date_create("2018-06-12");
$diff=date_diff($today,$date)->format("%a");

if ($diff > 90 && $diff < 180) {
    echo "Inside range";
}
else {
    echo "Out of range";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48933699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档