繁体   English   中英

检查日期是否早于当前日期(按月)

[英]Check if older or newer date than current (by month)

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

检查较新的日期时得到错误的结果。

您忘记将+添加到strtotime函数中。

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

更新:您的问题有些奇怪。 例如,2013-02不是日期,而是对月份的引用。 如果要检查这是否是月份的第一天,请使用完整的日期符号:2012-02-01。 如果要检查当前日期是否为月份,请使用date("n")检查当前月份(返回1-12);否则,返回0。 并将其与给定的月份进行比较,例如:

$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';
}

如果您想将日期与当前时间进行比较以查看其过去还是将来,则可以使用

$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'即没有一天,即使我们仍在一月,它也会像过去一样返回。 一定要看看这是否是您想要的行为

比较字符串呢? 如果可以直接比较字符串,则使用ISO 8601格式yyyy-mm-dd总是按字典顺序排序。

2012-01 <2012-12 < 2013-01 <2013-02 <2014-01(粗体为当前)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM