如何将数字与日期PHP进行比较

时间:2014-03-11 13:56:51

标签: php date

有没有办法将值转换为日期?我有3个下拉列表:日,月和年。如果所选日期<今天,然后消费者无法点击购买按钮,直到我在de dropdown中选择的那一天。 问题是,我选择的日期是一个值而不是一个日期。有没有办法将我的价值与今天的日期进行比较?下面的代码是我网站的后端,if语句必须留在前端

    $releasedatumdag= get_post_meta( $domeinnaam_extensies->ID, 'releasedatumdag', true );
$releasedatummaand= get_post_meta( $domeinnaam_extensies->ID, 'releasedatummaand', true );
$releasedatumjaar= get_post_meta( $domeinnaam_extensies->ID, 'releasedatumjaar', true );

<tr>
        <th>Releasedatum:</th>
        <td>
            <select name="domeinnaam_extensies_releasedatumdag">
                <?php
                for($idag = 1; $idag <= 31; $idag++){
                echo '<option value="'.$idag.'">'.$idag.'</option>';
                                                        }
                ?>
            </select>

            <select name="domeinnaam_extensies_releasedatummaand">
                <?php
                for($imaand = 1; $imaand <= 12; $imaand++){
                echo '<option value="'.$imaand.'">'.$imaand.'</option>';
                                                        }
                ?>
            </select>

            <select name="domeinnaam_extensies_releasedatumjaar">
                <?php
                for($ijaar = 2000; $ijaar < date("Y")+10; $ijaar++){
                echo '<option value="'.$ijaar.'">'.$ijaar.'</option>';
                                                        }
                ?>
            </select>
        </td>
    </tr>

2 个答案:

答案 0 :(得分:0)

您可以使用DateTime()创建日期。然后,您可以将它与另一个DateTime对象进行比较,因为DateTime对象具有可比性:

$my_date = DateTime::createFromFormat('d/m/Y', '31/12/2014');
$now     = new DateTime();
if ($my_date < $now) {
  // do something
}

答案 1 :(得分:0)

您有一天,一个月和一年,所以只需创建一个DateTime对象,您就可以获得它的时间戳并将其与今天进行比较。

http://www.php.net/manual/en/datetime.construct.php

http://php.net/manual/en/function.checkdate.php

Can string the digits into any format that you want
$dateString = $releasedatumdag . '/' . $releasedatummaand . '/' . $releasedatumjaar;

//Make sure that they didn't try to create Feb. 31
if(checkdate($dateString)) {
    $submittedTime = new DateTime($dateString);
    $today = new DateTime();

    //DO YOUR COMPARISON HERE
}