Php 在wordpress中比较日期

Php 在wordpress中比较日期,php,wordpress,Php,Wordpress,我在WordPress中使用以下代码来检查文章是否在2017年9月15日之前发布,但问题是,如果日期大于15,而月份小于15,则仍然显示日期大于15。例如,如果$pdate是28-08-17,$mydate是15-09-17,它仍然返回true $pdate = strtotime(get_the_date("d-m-y")); $mydate = strtotime('15-09-17'); if ($pdate>$mydate) { //d

我在WordPress中使用以下代码来检查文章是否在2017年9月15日之前发布,但问题是,如果日期大于15,而月份小于15,则仍然显示日期大于15。例如,如果$pdate是28-08-17,$mydate是15-09-17,它仍然返回true

    $pdate  = strtotime(get_the_date("d-m-y"));
    $mydate =   strtotime('15-09-17');
    if ($pdate>$mydate)
    {
    //do something
    }
    else {
    //do something
    }

它将你的第一个数字,即28和15解释为一年

从手册中:

但是,如果年份以两位数格式给出,则使用分隔符 是破折号-,日期字符串被解析为y-m-d

尝试使用四位数的年份,这样它就不会以不希望的方式解析日期字符串:

$pdate  = strtotime(get_the_date("d-m-Y"));
$mydate =   strtotime('15-09-2017');
if ($pdate>$mydate)
{
//do something
}
else {
//do something
}

它将你的第一个数字,即28和15解释为一年

从手册中:

但是,如果年份以两位数格式给出,则使用分隔符 是破折号-,日期字符串被解析为y-m-d

尝试使用四位数的年份,这样它就不会以不希望的方式解析日期字符串:

$pdate  = strtotime(get_the_date("d-m-Y"));
$mydate =   strtotime('15-09-2017');
if ($pdate>$mydate)
{
//do something
}
else {
//do something
}

您已经使用d-m-y指定了$pdate的格式;但是,$mydate遵循设置>常规中设置的格式。确保两种格式匹配以进行正确比较

为了澄清,让代码反映您设置中的日期格式。假设您希望帖子中的日期如下所示:2017年9月20日,即F j,Y。您的代码为:

$pdate  = strtotime(get_the_date('F j, Y'));
    $mydate =   strtotime('September 15, 2017');
    if ($pdate>$mydate)
    {
    //do something
    }
    else {
    //do something
    }

您已经使用d-m-y指定了$pdate的格式;但是,$mydate遵循设置>常规中设置的格式。确保两种格式匹配以进行正确比较

为了澄清,让代码反映您设置中的日期格式。假设您希望帖子中的日期如下所示:2017年9月20日,即F j,Y。您的代码为:

$pdate  = strtotime(get_the_date('F j, Y'));
    $mydate =   strtotime('September 15, 2017');
    if ($pdate>$mydate)
    {
    //do something
    }
    else {
    //do something
    }

使用新的更新,工作代码如下所示:

<?php 

$pdate  = get_post_timestamp();
$mydate = time();
if ($pdate < $mydate) {
    echo 'Do something';
} else {
    echo 'Do something else';
}

更多信息请访问

,使用新的更新,代码如下所示:

<?php 

$pdate  = get_post_timestamp();
$mydate = time();
if ($pdate < $mydate) {
    echo 'Do something';
} else {
    echo 'Do something else';
}


更多信息请访问

回显这两个变量,并查看哪个变量更大!我试着这样做,它的价值仍然是更大的更新是大于mydate时回显?可能有一个非常简单的解决办法,我不太确定。将d-m-y中的双引号改为单引号。我希望这可能有助于回传这两个变量,看看哪个更大!我试着这样做,它的价值仍然是更大的更新是大于mydate时回显?可能有一个非常简单的解决办法,我不太确定。将d-m-y中的双引号更改为单引号。我希望这可能会有所帮助-$mydate是静态的,$pdate是wordpress post的发布日期。我确实意识到这一点,但如果日期格式设置为y-m-d,例如在您的设置中,在比较两个日期时,15将被解释为年份。将php日期字符串传递到get_中,该_日期将完全覆盖Settings>General中的日期设置。无需更改日期格式以反映设置。我知道!但是我们没有为$mydate获取日期,所以它采用设置的格式。我决定更改&pdate,以匹配设置的格式,从而匹配mydate的格式。换句话说,您如何确保2017年9月15日被解释为2017年9月15日,而不是2017年9月17日,2015,如果它不遵循设置的格式,$mydate将是静态的,$pdate是wordpress post的发布日期,我知道,但是如果日期格式设置为y-m-d,例如在您的设置中,在比较两个日期时,15将被解释为年份。将php日期字符串传递到get_中,该_日期将完全覆盖Settings>General中的日期设置。无需更改日期格式以反映设置。我知道!但是我们没有为$mydate获取日期,所以它采用设置的格式。我决定更改&pdate,以匹配设置的格式,从而匹配mydate。换句话说,如果15-09-17不符合设置的格式,您如何确保将其解释为2017年9月15日,而不是2015年9月17日。