1

嗨,我使用php存储了一个从表单中获取的日期,现在我想检查日期是否在季节中。我编写的代码如下:

$year = 2012;
$month1 = $_POST["month1"];
$date = $_POST["date"];
$result = "{$year}/{$month1}/{$date}";
echo $result;

现在

// finding first saturday in febraury
    $saturday = strtotime('First Saturday '.date('F o', mktime(0,0,0, $month, 1, $year)));
    echo "this is the first saturday in the given year:";
    echo date('Y/m/d', $saturday);

 // calculating first 12 weeks after the first saturday
    echo "<br/>";
    $season1 = strtotime ( '+12 week' , $saturday);
    echo "<br/>this is the first season:";
    echo date('Y/m/d', $season1);
    echo "<br/>";

 // calculating the one week gap after the first 12 weeks
    $season2 = strtotime ('+1 week' , $season1);
    echo "<br/>this is the first week break:";
    echo date('Y/m/d', $season2);
    echo "<br/>";

在这里我需要做的是检查用户给出的日期是在第 1 季还是第 2 季..为此我尝试了

if ($result <= $season1)
    {
     echo "League yet to be opened";
    }
    else 
    {
    echo "league 1 is opened";
    }

但是这里没有检查条件,同样我需要检查用户输入的日期有 8 个季节我该怎么做.. 非常感谢任何帮助.. 提前谢谢..

4

1 回答 1

0

我建议你使用这样的代码和逻辑组织

从 POSTed 定义当前日期

不要忘记确保数据是安全的

年、月和日(日)必须是数字,才能使此逻辑起作用。

$year = 2012;
$month1 = $_POST["month1"];
$date = $_POST["date"];

定义你的季节数组

$seasons = array(
   1 => array(
              'season_name' => 'first_season',
              'year_start' => 2012, 'year_end' => 2012, 
              'month_start' => 1, 'month_end' => 2, 
              'day_start' => 10, 'day_end' => 20
              ), 
   2 => array(
              'season_name' => 'second_season',
              'year_start' => 2012, 'year_end' => 2012, 
              'month_start' => 2, 'month_end' => 3, 
              'day_start' => 30, 'day_end' => 15
              ) 
 );

处理数据以定义季节

$season_match = array();
foreach($seasons as $season){
   if($year >= $season['year_start']) && if($year <= $season['year_end']){
       if($month >= $season['month_start']) && if($season<= $season['month_end']){
           if($date >= $season['date_start']) && if($season<= $season['date_end']){
               $seasons_match[] = $season['season_name'];
           }
       }
   }
}

测试错误并回显结果季节

if(count($season_match) == 0){
   echo 'Date is out of any season';
}
esleif(count($season_match) >1){
   echo 'ERROR: Date can be for more then one season at once';
}
else{
   echo $season_match; // This is the name of our season!
}

这是简单而清晰地解决您的任务的一般逻辑,我没有测试过。

于 2012-05-11T04:16:15.193 回答