2012-05-11 1 views
1

hi я сохранил дату, взятую из формы в переменной, используя php, и теперь я хочу проверить, является ли дата в сезон или нет. код, который я написал, выглядит следующим образом :сравнение даты с разными сезонами в 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/>"; 

Вот что мне нужно сделать, это проверить, является ли дата, указанная пользователем в season1 или season2..for этом я пытался, как

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

, но состояние здесь не проверяется, и, как мудрый, мне нужно проверить дату, введенную пользователем с 8 сезонами, как я могу это сделать .... любая помощь очень ценится .... спасибо заранее. .

+0

Может ли кто-нибудь помочь мне в PLZ .... –

+0

Пожалуйста, уточните, как определяются ваши сезоны – DaneSoul

+0

из приведенного выше кода вы можете видеть, что $ season1 - это первый сезон, $ season2 - второй сезон, как мудрый, у меня есть upto $ season8. Мне нужно получить дату от пользователя и проверить все сезоны и рассказать ему, в какое время он сейчас. –

ответ

0

Я бы посоветовал использовать такую ​​организацию коды и логики

Определить текущую дату из публикуемой

не забудьте уверились данные безопасны

года, месяц и дата (день) ДОЛЖНЫ быть численными, чтобы эта логика работала.

$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! 
} 

Это общая логика для простой и Ясное решение вашей задачи, я ее не тестировал.

+0

thnk u very much fr the help @dane Soul ... это действительно помогло мне .. –

+0

Я добавил некоторые незначительные исправления (неправильные имена и т. Д.), Теперь это выглядит правильно. Рад, что это помогло. Btw, лучше добавить upvote для ваших отклонений, потому что некоторые люди охотятся за рейтингом :-) – DaneSoul

Смежные вопросы