PHP检查输出日期是否小于当前日期

时间:2017-04-29 00:06:44

标签: php

我有以下功能,该功能运作良好但想检查返回的日期,并在当前日期之前与当前日期进行比较,以显示当前或将来显示的内容正常。

功能:

function dateFormat( $old, $correction ) {
    $old_date_timestamp = strtotime( $old );
    $new_date = date( 'jS F Y', $old_date_timestamp + $correction );
    return $new_date;
}

呼叫:

echo '<li class="list-group-item">Support Expires: ' . dateFormat($purchase_data['verify-purchase']['supported_until'], 11*60*60 . '</li>');

输出:

  

2016年3月2日

因此,今天的日期和/或今天的日期之前不希望回复消息,否则只显示日期。

3 个答案:

答案 0 :(得分:1)

在PHP中,使用< = >比较两个不同的日期非常简单,就像通常比较数字一样。在此之前的唯一步骤如下:

//Tell PHP that the value in variable is a date value
$date_1 = date_create("2017-05-29"); //This value can be any valid date format
date_1_formatted = date_format($date_1, "Y-m-d"); //This formats the date_1

//Now you can simply put the second date, for example, today.
$date_2 = date_create("2017-04-29"); //This value can be any valid date format
date_2_formatted = date_format($date_2, "Y-m-d"); //This formats the date_1

//For current date, it is simpler
$date_today_formatted = date("Y-m-d");

//Now you can compare these two dates easily
if ($date_1 < $date_today_formatted) {
    echo "Date 1 falls before today.";
}
else {
    echo "Date 1 falls after today.";
}

希望这有帮助!

答案 1 :(得分:0)

我设法使用以下两个功能来解决这个问题:

function dateFormat( $old, $correction ) {
    $old_date_timestamp = strtotime( $old );
    $new_date = date( 'jS F Y', $old_date_timestamp + $correction );
    return $new_date;
}

function checkLicenceSupport($licence_date) {
    $date_now = new dateTime();
    $date_set = dateFormat($licence_date, 11*60*60);

    if ($date_now > $date_set) {
      return 'date expired';
    } else {
      return 'date valied';
    }
}

答案 2 :(得分:0)

  

我有以下功能,但效果很好   检查返回的日期并与当前日期进行比较。

     

如果它在当前日期之前,请显示一些内容。

     

如果是当前日期,或将来显示为正常日期。

我需要重写你的问题,因为缺乏语法和标点符号令人困惑。没有违法行为。

  • 您的调用代码具有错误放置函数调用的右括号。

    dateFormat($ purchase_data [&#39; verify-purchase&#39;] [&#39; supported_until&#39;],11 * 60 * 60)

  • 使用整天或小时(以秒为单位)更具可读性:

    11 * 86400 //(11天);

    11 * 3600 //(11小时);

您现在拥有的功能和代码将始终返回您通过通话提交的日期的未来日期。 (我无法从你的问题中判断这是否有意)。

目前,没有&#34;比较&#34;在你的功能。但是您的问题表明您想要将提交的日期与当前日期进行比较,然后在某些情况下执行某些操作。

如果您打算使用Unix时间戳,那么就不需要多次格式化,比较Unix中的两个日期,然后格式化结果。

function dateCompare($submittedDate){
    //This is only needed if your submitted date is not a unix timestamp already
    $submittedDate = strtotime($submittedDate); 

    $currentDate = time(); // Creates timestamp of current datetime

    if($submittedDate < $currentDate) {
        //show something i.e. return "Support Has Expired";
    }else {
        return date('jS F Y', $submittedDate);
    }
}

echo '<li class="list-group-item">Support Expires: '.dateCompare($purchase_data['verify-purchase']['supported_until']).'</li>';