获取租赁项目的截止日期

时间:2018-04-29 14:27:22

标签: php datetime

我正在从事物业租赁项目。为此,我想计算每个月的截止日期。这是我的代码:

<?php
echo "<b>Today's Date: </b>".$Currentdate=date("d F Y");//current date
$user_date = date("d F Y",strtotime("2013-02-28"));//date you get from database

if($Currentdate<=$user_date){
    echo '<br><b>First Date : </b>'.$first_date = date("d F Y",strtotime('+2 month',strtotime($user_date)));//only if current date is less than user's date
}
else{
    echo '<br><b>Second Date : </b>'.$second_date = date("d F Y",strtotime ( '+1 month' , strtotime ( $user_date ) )) ;//only if current date is more than user's date
}   
?>

这很好,但是如果用户输入的是某个上一个日期,就像今天是4月29日,但用户进入2月2日。此代码将显示3月1日,但我想要5月1日。我也需要根据当前日期到期日。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您无法比较格式化的日期。您应该比较时间戳(这是一个整数),因此,您可以保留strtotime()结果并将其与time()进行比较:

echo "<b>Today's Date: </b>".$Currentdate=date("d F Y");//current date
$user_time = strtotime("2013-02-28") ;
$user_date = date("d F Y", $user_time);//date you get from database

if (time() <= $user_time){
    echo '<br><b>First Date : </b>'.$first_date = date("d F Y",strtotime('+2 month',strtotime($user_date)));//only if current date is less than user's date
}
else{
    echo '<br><b>Second Date : </b>'.$second_date = date("d F Y",strtotime ( '+1 month' , strtotime ( $user_date ) )) ;//only if current date is more than user's date
}

使用DateTime对象(由@Spudley指出),您可以使用comparison operators,并为所有内部处理保留时间戳。

  

从PHP 5.2.2开始,可以使用比较运算符比较DateTime对象。

$current_date = new DateTime();
$user_date = new DateTime("2013-02-02");

echo "<b>Today's Date: </b>".$current_date->format("d F Y");//current date

if ($current_date <= $user_date){
    $first_date = $user_date->modify('+2 month');
    echo '<br><b>First Date : </b>'. $first_date->format("d F Y");//only if current date is less than user's date
}
else{
    $second_date = $user_date->modify('+1 month');
    echo '<br><b>Second Date : </b>'.$second_date->format("d F Y") ;//only if current date is more than user's date
}
相关问题