比较php中的两个不同日期

比较php中的两个不同日期,php,Php,我有两次约会。一个是$monthToCheck=日期'Y-m-01';另一个来自API,它存储在一个变量中:$reqs['end_date']。我的问题是:如何检查api中的日期是否大于$monthToCheck。比如说2020-01-01比2019-12-01更大,因为年份更高 我尝试的是: $time = strtotime($reqs['end_date']); $monthToCheck = date('Y-m-01'); if($time > $m

我有两次约会。一个是$monthToCheck=日期'Y-m-01';另一个来自API,它存储在一个变量中:$reqs['end_date']。我的问题是:如何检查api中的日期是否大于$monthToCheck。比如说2020-01-01比2019-12-01更大,因为年份更高

我尝试的是:

     $time = strtotime($reqs['end_date']);
     $monthToCheck  = date('Y-m-01');
     if($time > $monthToCheck) {...} 

我使用strotime将API中的日期转换为日期,然后将其与$monthToCheck变量进行比较。但我感觉有些不对劲,因为结果都是正确的,尽管情况并非总是如此。

php可以轻松比较年-月-日格式的日期

if($monthToCheck > $reqs['end_date']){
    // do something
}
只需将您的$monthto支票存入STROTIME:


strtotimedate'Y-m-01';然后你将苹果与苹果的日期“Y-m-01”进行比较;也是字符串吗?嗯@RiggsFolly@Kevin.a是^var_dump itnew DateTime'date1'>new DateTime'date2'正如您在中看到的,date函数以字符串形式返回日期。如果有疑问,请查看手册。比较两个整数总是比比较两个表示日期的字符串更可靠。在测试注释中,您是否有一个我的技术不太可靠的示例,我想对此进行测试。这是理所当然的。特别是一些国家喜欢把日期设置成非逻辑格式,比如从中间开始,从一个方向或另一个方向进行。我说的是美国人喜欢在mm/dd/yyyy上写日期的方式:@RiggsFolly你需要用一种合适的可排序格式来写日期,我认为这是一种既定的方式。这对于任何任意的日期格式都不起作用,这一点大家都应该清楚。考虑到问题只是比较日期部分,时间戳可能也会给您带来麻烦-当您比较两个时间戳时,它们是针对同一日期的,但时间不同。如果要比较的日期来自不同的来源,并且时区设置可能没有正确考虑,或者诸如此类的情况,那么这也很容易发生。
$monthToCheck  = strtotime(date('Y-m-01'));