检查当前(按月)的日期或更新日期

时间:2013-01-09 11:08:21

标签: php date if-statement

我想检查给定日期(如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 !
}

检查更新的日期时,我的结果不正确。

3 个答案:

答案 0 :(得分: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';
}

答案 1 :(得分: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'之类的日期,即没有一天,它将像过去一样返回,即使我们仍然在1月份。如果这是您想要的行为,请务必查看

答案 2 :(得分:1)

比较琴弦怎么样?如果您可以直接比较字符串,使用ISO 8601格式yyyy-mm-dd,它们总是按字典顺序排列。

2012-01&lt; 2012-12&lt; 2013-01 &lt; 2013-02&lt; 2014-01 (粗体是当前的)