如何确定用户输入的日期是否在将来?

时间:2014-05-06 09:24:51

标签: php date

我如何在PHP中知道用户在将来输入的日期而不是当前日期。

if($current_date<$future_date)
{
//do all the success actions here
}
else
{
//show the user that they have selected a date in the past.
}

2 个答案:

答案 0 :(得分:1)

您首先需要使用strtotime()函数转换日期字符串,然后检查未来日期值是否大于当前日期值。

以下是代码段:

$today_date=date('Y-m-d H:i:s');
$current_date=strtotime($today_date);
$future_date=strtotime($future_date);//retrieved from user's input

现在您可以调用您的函数:

if($current_date<$future_date)
{
//do all the success actions here
}
else
{
//show the user that they have selected a date in the past.
}

答案 1 :(得分:0)

我想您知道用户输入日期的日期格式,因为它可以帮助您了解您将使用的日期格式。但无论您使用何种日期格式,您都可以使用以下方法将其转换为更合适的格式:

strtotime()

以下是检查未来日期(严格按日期工作)的示例

$currentDate = date("Y-m-d");   

$userFututeDate = "2014-05-08";

if($userFututeDate > $currentDate){

echo 'You have selected a date in the future';

}
else{

echo 'You have selected a date in the past.';
}

以下是检查未来日期(使用日期和时间)的另一个示例

$currentDateTime = date("Y-m-d H:i:s"); 

$userFututeDateTime = "2014-05-07 05:05:08";

if($userFututeDateTime > $currentDateTime){

echo 'You have selected a date in the future';

}
else{

echo 'You have selected a date in the past.';
}

也许,你需要了解如何使用strtotime(),找到下面的一些示例:

$dateVar = "25-07-2014 05:05:08";
echo date("F j Y", strtotime($dateVar));
echo '<br><br>';    
echo date("Y-m-d", strtotime($dateVar));
echo '<br><br>';    
echo date("F jS Y, g:i a", strtotime($dateVar));

Check out for more on strtotime()