如何检查某个日期是否在其他日期之间?

时间:2019-02-05 18:09:04

标签: php

我从GET获得两个日期

> devtools::document(roclets=c('rd', 'collate', 'namespace'))
Updating gwasrapidd documentation
Loading gwasrapidd
Error in method_body[[2]] : subscript out of bounds

然后我将它们转换为日期:

devtools

如果我var_dump他们我会得到

$start = $_GET['start']; 
$end = $_GET['end'];

然后我循环发布帖子,并在自定义字段中有一个日期,它是一个字符串,因此我将其转换为日期:

$start  = \DateTime::createFromFormat('d-m-yy', $start);
$end  = \DateTime::createFromFormat('d-m-yy', $end);

如果我vur_dump我得到了

object(DateTime)#8260 (3) { ["date"]=> string(26) "2019-02-01 18:05:42.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 
object(DateTime)#7967 (3) { ["date"]=> string(26) "2019-02-05 18:05:42.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" }

然后我终于做到了:

foreach($posts as $post) { 
   $myDate = \DateTime::createFromFormat('d-m-yy', usp_get_meta(false,'usp-custom-80'));

但我无法获得正确的结果,好像该条件根本不起作用

2 个答案:

答案 0 :(得分:0)

您可以尝试:

if ( ( $myDate->getTimestamp() >= $start->getTimestamp()) && ( $myDate->getTimestamp() <= $end->getTimestamp()) )

答案 1 :(得分:0)

您可以比较Unix纪元开始的秒数。

if ( ($start->format('U') <= $myDate->format('U')) 
    && ( $myDate->format('U') <= $end->format('U'))) {
    // date is between start and end
}