将日期文本字段与今天的日期进行比较

时间:2013-07-01 11:34:43

标签: php date time

希望你能提供帮助,我有以下代码来检查两者,日期字段是否有效,以及它是否曾经发生过。有效的格式部分有效,但它一直说日期是未来的(因此是不可接受的),无论它是否存在。我在这里缺少什么?

  if($_POST['DateOfCall']!=NULL)  
{  
    $dt = $_POST['DateOfCall'];  
    $array = explode("/",$dt);  

    $day = $array[1];  
    $month = $array[0];  
    $year = $array[2];  

    if(!checkdate( $day,$month, $year))  
    {  
   echo '<script type="text/javascript">'
   ,   'alert ( "Not a Valid Date of Call" );'
   , '</script>';
    }  
    else  
    {  
    $today = date("d/m/y"); 

    if(strtotime($dt)>$today)  
    echo '<script type="text/javascript">'
   ,   'alert ( "Date of Call is in the future..." );'
   , '</script>';
    }  
}  



}

提前谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用不同的格式混合日期。 strtotime返回一个整数(Unix时间戳),而date返回文本表示(字符串)。将date("d/m/y")替换为time()即可。

答案 1 :(得分:0)

checkdate()实际上按以下顺序获取参数:

checkdate($month, $day, $year)

因此,在代码中切换$ month和$ day。

另外第二个错误是您与if(strtotime($dt)>$today)对齐,您应该将今天的$转换为unix-time; if(strtotime($dt) > strtotime($today))

答案 2 :(得分:0)

您可以将time()与该日期的UNIX时间戳表示进行比较:

if (strtotime("MM/DD/YYYY 4:00PM") > time())
{
    // given date is in future. Proceed.
}

文档:strtotime