2017-09-20 192 views
1

我在WordPress中使用以下代碼來檢查文章是否在15-09-17之前發佈,但問題是如果日期大於15且月份較少,它仍然顯示日期較大。例如,如果$ pdate是28-08-17而$ mydate是15-09-17,它仍然返回爲true。在wordpress中比較日期

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

回顯這兩個變量,看看哪個更大! –

+0

我試過這樣做,它的價值還是更大 –

+0

pdate回聲時大於mydate? –

回答

1

它將您的第一個數字(即28和15)解釋爲年份。

strtotime()手冊:

但是,如果當年在以兩位數字格式和分隔 給出的是一個破折號( - ,日期字符串被解析爲年月日

嘗試使用四位數年份,因此不會不期望的方式解析日期字符串:

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

您指定的FO使用d-m-y$pdate的rmat;然而,$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 
    } 
+0

$ mydate將是靜態的,$ pdate是wordpress的發佈日期後 –

+0

我知道,但如果日期格式設置爲ymd(例如)在您的設置,15將被解釋爲比較兩個日期的年份。 – Sheedo

+0

請檢查我的更新答案。 – Sheedo