如何在php和输入中阻止过去的日期?

时间:2015-06-09 19:34:23

标签: php date jquery-ui-datepicker date-comparison

<input id="datepicker" name="datepicker" class="calendar" />

这是我的剧本:

 <script>

    $(function() {
      $( "#datepicker" ).datepicker({ minDate: 0});
    });
    </script>

这里是php

if( $date < strtotime( date('m/d/Y', $time )) ) {
     echo "<script>alert('You can't put past day..'); </script>"; }

我想阻止用户错误地输入过去的日期或知道..但它不起作用..我不能阻止..我可以阻止用户输入过去的日期吗?我希望只有用户可以在下一天进入今天..所以我想在php中输入过滤。

2 个答案:

答案 0 :(得分:2)

strtotime()没有格式字符串,您要使用的函数是DateTime::createFromFormat。它会返回DateTime个对象,而不是时间戳,因此您需要将其与DateTime进行比较:

$date = $_POST['datepicker'];
if (DateTime::createFromFormat('m/d/Y', $date) < new DateTime()) {
    echo "<script>alert('You can't put past day..'); </script>";
} else {
    // code to insert into database
}

DEMO

答案 1 :(得分:-1)

我修复了n也许它可以帮助任何需要我的人..

<input id="datepicker" name="datepicker" class="calendar" /><br />


  <script>
$(function() {
  $( "#datepicker" ).datepicker({ minDate: 0});
});
</script>

$year=$_POST['year'];
$date=$_POST['datepicker'];
$timer=$_POST['timer'];

$time=time();


        $start_data = date('m/d/Y', time() - (86400));

    $now=date('m/d/Y', $time);


if(  $date  < $start_data ){
    echo "<script>alert('Failed..'); </script>";

    }

再次感谢你的帮助..