首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >wordpress中日期的比较

wordpress中日期的比较
EN

Stack Overflow用户
提问于 2017-09-20 18:07:40
回答 3查看 6.9K关注 0票数 1

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

代码语言:javascript
复制
    $pdate  = strtotime(get_the_date("d-m-y"));
    $mydate =   strtotime('15-09-17');
    if ($pdate>$mydate)
    {
    //do something
    }
    else {
    //do something
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-20 18:31:45

它把你的第一个数字(也就是28和15)解释为一年。

来自strtotime()手册:

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

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

代码语言:javascript
复制
$pdate  = strtotime(get_the_date("d-m-Y"));
$mydate =   strtotime('15-09-2017');
if ($pdate>$mydate)
{
//do something
}
else {
//do something
}
票数 4
EN

Stack Overflow用户

发布于 2017-09-20 18:50:03

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

为了澄清,让代码在您的设置中反映日期格式。假设您希望帖子中的日期显示为:September 20, 2017,即F j, Y。您的代码将是:

代码语言:javascript
复制
$pdate  = strtotime(get_the_date('F j, Y'));
    $mydate =   strtotime('September 15, 2017');
    if ($pdate>$mydate)
    {
    //do something
    }
    else {
    //do something
    }
票数 1
EN

Stack Overflow用户

发布于 2019-11-14 09:32:13

对于新的更新,工作代码如下:

代码语言:javascript
复制
<?php 

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

更多信息请访问Wordpress 5.3 -日期/时间改进

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46328989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档