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

问题描述 投票:0回答:2

我从GET两个日期

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

我然后将其转换成日期:

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

如果我的var_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'));

如果我vur_dump,我得到

object(DateTime)#8457 (3) { ["date"]=> string(26) "2000-03-20 18:07:28.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 

后来我终于做到:

if ( ( $myDate >= $start) && ( $myDate <= $end) ) {
....

但是,好像这条件不工作我没有得到正确的结果

php
2个回答
0
投票

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

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

0
投票

你可以尝试:

if ( ( $myDate->getTimestamp() >= $start->getTimestamp()) && ( $myDate->getTimestamp() <= $end->getTimestamp()) )
© www.soinside.com 2019 - 2024. All rights reserved.