2013-01-09 38 views
1

我要檢查,如果給定的日期(如2012-12),比目前的日期舊或新。檢查舊的或較新的日期比目前的(每月)

我知道如何檢查舊的一個月像

if(strtotime('2012-12')<strtotime('-1 Months')){ 
    echo "true"; // got TRUE ... correct! 
} else { 
    echo "false"; 
} 

但對於較新的?

if(strtotime('2013-02')>strtotime('1 Months')){ 
    echo "true"; 
} else { 
    echo "false"; // got FALSE ... incorrect ! 
} 

當檢查更新的日期時,我得到不正確的結果。

+0

爲什麼要使用時間1個月前或1個月後從現在開始如果你想比較'現在'? – Pankrates

+0

可以擴展嗎? @Pankrates – l2aelba

回答

7

您忘記將+添加到您的strtotime函數中。

if(strtotime('2013-02')>strtotime('+1 Months')){ 
    echo "true"; 
} else { 
    echo "false"; 
} 

更新: 有些東西是你的問題很奇怪。例如2013-02不是日期,而是一個月的參考。如果您想檢查這是否是本月的第一天,請使用完整日期符號:2012-02-01。如果你想檢查一個月的當前日期是否使用date("n")(返回1-12)檢查當前月份;如果要檢查,如果這不是當前的日期這樣做

$date = "2012/02/01"; 

if(date("n", strtotime($date)) != date("n")) { 
echo 'not current month'; 
} 

:和比較這對給定的月份,比如

$date = "2012/02/01"; 

if(date('d-m-Y', strtotime($date)) != date('d-m-Y')) { 
echo 'not current day'; 
} 
+0

瞭如果給當前的日期假:(測試 – l2aelba

1

如果你想比較的日期看到當前的時間,如果它在過去或將來,你可以使用,無論

$date = '2013-02'; 
$now = time(); 

if (strtotime($date) > $now) { 
    echo 'Date is in the future'; 
} else { 
    echo 'Date is in the past'; 
} 

請注意,如果您對供應喜歡$date = '2013-01'即日期沒有一天它會返回像過去那樣,E儘管我們仍然在1月份。一定要好好看看如果是這樣的行爲,你想

+0

,結果是「過去」 – l2aelba

+1

這正是因爲我提到的原因,你會認爲今天作爲未來呢?如果你沒有指定一個確切的日期和時間如何你區分是否是在過去還是未來。如果你想有一個更詳細的回答,你需要澄清你正在尋找的確切功能進行 – Pankrates

+0

是的!忘了這!,2013-01(1)被粘貼 – l2aelba

1

有關比較的字符串是什麼?如果您可以直接比較字符串,使用ISO 8601格式yyyy-mm-dd,它們總是按字母順序排列。

2012-01 < 2012-12 < 2013-01 < 2013-02 < 2014-01 (粗體一個是當前的)

+0

好的技巧!,這項工作在我的情況下 – l2aelba

+0

我會用這個把戲,但我不能接受你的回答。我希望你明白:D – l2aelba

+0

:)別擔心。 –