在php中验证日期范围搜索

时间:2011-06-09 05:32:36

标签: php validation search date

我将在mySQL中为我正在构建的应用程序实现一个搜索功能, 用户类型[现在,以后将是日历选择器]开始日期和结束日期, 然后单击搜索

  1. if(开始日期>结束日期),那么错误
  2. if(开始月份>结束月份),那么错误
  3. 好到目前为止,但考虑到了

    1. if(开始日>结束日)&& (开始月份<结束月份),然后搜索
    2. if(start Month> end Month)&& (开始年份&结束年度),然后搜索
    3. 我不担心闰年,我会将所有月份循环到31天,因为如果这一天在数据库中,它将获取它,否则,它将返回31并且没有任何返回,因为没有一天,

      我使用varchar作为我的日期(没有时间戳),因为它们是从json [iOS]导入的

      好的,希望有意义,

      这里是代码,

      <?PHP
        $start = $_POST['start_date'];
        $end = $_POST['end_date'];
        $start_time = explode('/', $start);
        $end_time = explode('/', $end);
      
         $count_start = $start_time[0];
        $count_end = $end_time[0];
        $month_start = $start_time[1];
        $month_end = $end_time[1];
        $year_start = $start_time[2];
        $year_end = $end_time[2];
      
        function cuenta($count_start, $count_end) {
      
      for($count_start; $count_start <= $count_end; $count_start++) {
      
          print $count_start . "<BR>";
      }
      
           }
      
           if (!isset($_POST['Submit1']) || ($start == "Start Date" && $end == "End Date") || ($start == "" && $end == "End Date") || ($start == "Start Date" && $end == "")
      || ($start == "" && $end == "")) 
      
          {
      
      print ("no data yet")."<BR>";
          }
      
          if ($year_start[2] > $year_end[2]){
      
      print ("Please make sure end date Year is equal or greater than start date Year");
      }
      
          if (($month_start > $month_end) && ($year_start <= $year_end)){
      
      print ("Please make sure end date Month is greater than start date Month");
      
           }
           elseif (($month_start > $month_end) && ($year_start < $year_end)){
      
      cuenta($count_start, $count_end);           
           }
      
          elseif ($count_start > $count_end) {
      print ("Please make sure end date Day is greater than start date Day");
      
          }
      
      
          ?>
      

      我正在开始使用php,对不起,如果我想念显而易见的!,[这就是为什么我要问哈哈] 所以,如果我错过了在日期范围内搜索的其他一些重要验证,请告诉我,并且还请指出我在这个ifs森林的最佳方向!

      非常感谢!

1 个答案:

答案 0 :(得分:2)

将日期转换为unix时间戳然后比较整数更容易。 PHP具有用于此目的的函数strtotime。如果您已经分割了日期,则可以使用mktime。