如何检查日期是否过期(PHP)

时间:2012-03-31 21:56:14

标签: php validation date

您的PHP脚本有两个文本框(一个用于月份,一个用于一年)。当用户按下提交按钮时,它应验证输入以查看日期是否已过期。这是我制作的代码,但似乎没有做任何事情。

$input_date = "$_POST['m']/$_POST['y']"; 

$todays_date = date("MM/YY");

if ($input_date < $todays_date)
{
   print '<p class = "error">Date has elapsed</p>';
}

注意:日期格式为MM / YYYY(文本框'm'包含MM,而tetxbox'y'包含YYYY)

3 个答案:

答案 0 :(得分:5)

您可以使用 mktime() strtotime()

$input_time = mktime(0,0,0,$_POST['m']+1,0,$_POST['y']); 

if ($input_time < time()){
   print '<p class = "error">Date has elapsed</p>';

}

答案 1 :(得分:2)

你可能会像这样使用strtotime函数:     

$input_date = "$_POST['m']/$_POST['y']"; 
$todays_date = date("m/Y");

if (strtotime($input_date) < strtotime($todays_date)){
print '<p class = "error">Date has elapsed</p>';

}

您可以在此阅读strtotime可以处理的格式:http://php.net/manual/en/function.strtotime.php

答案 2 :(得分:2)

我不相信你可以将这些$ _POST变量放在引号中。例如,以下代码将崩溃:

<?php
$foo = array("foo" => "bar");
$input = "$foo['foo']";
print $input;
?>

相反,请尝试

$input_date = $_POST['m'] . "/" . $_POST['y'];

此外,您可能需要考虑撤消月份和年份。在目前的计划中,01/13在12/12之前出现。