Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查日期,看有多老?_Php - Fatal编程技术网

Php 检查日期,看有多老?

Php 检查日期,看有多老?,php,Php,我想检查给定日期是否超过30天我必须打印“OUTOFDATE”,否则我必须打印“INPROCESS” 我试过这样的东西 if(strtotime('2014-05-14')>strtotime('+1 Months')){ echo "OUTOFDATE"; } else { echo "INPROCESS"; } 帮帮我。试试看 echo $start = date('Y-m-d', strtotime('2014-04-20')); echo $end = date('

我想检查给定日期是否超过30天我必须打印“OUTOFDATE”,否则我必须打印“INPROCESS”

我试过这样的东西

if(strtotime('2014-05-14')>strtotime('+1 Months')){
   echo "OUTOFDATE";
} else {
    echo "INPROCESS";
}
帮帮我。

试试看

echo $start = date('Y-m-d', strtotime('2014-04-20'));
echo $end = date('Y-m-d', strtotime('-30 days'));
if($start > $end) {
  echo "OUTOFDATE";
} 
else {
  echo "INPROCESS";
}

试试这个对你很好

if(strtotime('2014-05-14')>=strtotime('+1 Months')){
   echo "OUTOFDATE";
} else {
    echo "INPROCESS";
}

您当前的条件:

if(strtotime('2014-05-14')>strtotime('+1 Months'))
说明:如果
2014-05-14
<1个月之后

您要做的是检查
2014-05-14
是否在
DateTime()
之前是,因为
DateTime()
对象是可比较的,PHP推荐用于所有日期数学:

$date1       = new DateTime('2014-05-01');
$oneMonthAgo = new DateTime('-1 month');
if ($date1 > $oneMonthAgo) {
    echo "OUTOFDATE";
} else {
    echo "INPROCESS";
}

您正在尝试查看2014-05-14是否超过了今天的日期加上2014-06-14的一个月。因此,2014-05-14号不超过2014-06号-14@merlin2011:语法正确。看到了吗?我该怎么办?请帮助。+1个月…没有,因为它不是复数形式?为什么不直接比较
$start
$end
字符串?仍然-为什么要使用
strotime
?这是错误的。上面写着“如果2014-04-03大于2014-04-03+30天”。。。它永远不会返回true,因为
$start
始终小于
$start+30天
抱歉,但它仍然不正确。错误是
$start
$end
的声明。您将一个日期与其自身进行比较+/-30天,因此条件将永远不会与
$start
相关<代码>$end
$start
的距离始终相同。是的,逻辑看起来更好。。。虽然我仍然不认为它能解决老年退休金问题。不管怎样,我删除了我的否决票,因为你修复了我所指的错误:)
$date1       = new DateTime('2014-05-01');
$oneMonthAgo = new DateTime('-1 month');
if ($date1 > $oneMonthAgo) {
    echo "OUTOFDATE";
} else {
    echo "INPROCESS";
}