我在WordPress中使用以下代码检查文章是否在15-09-17之前发布,但问题是如果日期大于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
}
答案 0 :(得分:1)
它将您的第一个数字(即28和15)解释为年份。
来自strtotime()
手册:
但是,如果年份以两位数格式和分隔符给出 是一个破折号( - ,日期字符串被解析为y-m-d。
尝试使用四位数年份,因此它不会以不合需要的方式解析日期字符串:
$pdate = strtotime(get_the_date("d-m-Y"));
$mydate = strtotime('15-09-2017');
if ($pdate>$mydate)
{
//do something
}
else {
//do something
}
答案 1 :(得分:1)
您已使用$pdate
指定了d-m-y
的格式;但是,$mydate
遵循Settings > General
中设置的格式。确保两种格式匹配才能进行正确的比较。
为了澄清,让代码反映您设置中的日期格式。假设您希望帖子中的日期显示如下:September 20, 2017
,即F j, Y
。您的代码将是:
$pdate = strtotime(get_the_date('F j, Y'));
$mydate = strtotime('September 15, 2017');
if ($pdate>$mydate)
{
//do something
}
else {
//do something
}
答案 2 :(得分:0)