Список календаря, для изменения набора месяцев - PullRequest
0 голосов
/ 28 декабря 2011

Поэтому я потратил весь день на написание этой страницы, чтобы собрать собрания, хранящиеся в таблице для определенной группы,

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

Все работает - кроме сравнения дней +/- швы даты очень буквальные и сегодня, 27-го, я провел тест, а собрания, которые я провел в БД 28-го и 30-го, появятся в январе.

Можно ли округлить дату до первого числа текущего месяца?

и есть ли более простой способ написать этот код?

PHP-код:

// post variables
$ScoutID=$_POST['ScoutID'];
$Rank=$_POST['Rank'];
$DenID=$_POST['DenID'];
// Define Dates
$Date = date("Y-m-d");
$Month1 = date("Y-m-d", strtotime("-3 months"));
$Month2 = date("Y-m-d", strtotime("-2 months"));
$Month3 = date("Y-m-d", strtotime("-1 months"));
$Month4 = $Date;
$Month5 = date("Y-m-d", strtotime("+1 months"));
$Month6 = date("Y-m-d", strtotime("+2 months"));
$Month7 = date("Y-m-d", strtotime("+3 months"));
$Month8 = date("Y-m-d", strtotime("+4 months"));
$Month9 = date("Y-m-d", strtotime("+5 months"));
$Month10 = date("Y-m-d", strtotime("+6 months"));
$Month11 = date("Y-m-d", strtotime("+7 months"));
$Month12 = date("Y-m-d", strtotime("+8 months"));
$Month12 = date("Y-m-d", strtotime("+9 months"));
//counter variables to print the month header
$M1=0;
$M2=0;
$M3=0;
$M4=0;
$M5=0;
$M6=0;
$M7=0;
$M8=0;
$M9=0;
$M10=0;
$M12=0;
$M12=0;

//Find Den Number from Den ID
$resultb = mysql_query('SELECT Den FROM Dens WHERE DenID = "'.$DenID.'"');
    if (!resultb)
    {
    die('Could not query:' .mysql_error());
    }
$DenNum = mysql_result($resultb,0);

$query = 'SELECT * FROM DenMeetings WHERE DenID = "'.$DenID.'" ORDER BY Date'; 
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) 
    {

    if($row['Date'] > $Month1 && $row['Date'] < $Month2)
        {
        if($M1 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month2));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M1++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month2 && $row['Date'] < $Month3)
        {
        if($M2 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month3));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 2 - ';
            echo $row['Notes'];
            echo '<br>';
            $M2++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 2 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month3 && $row['Date'] < $Month4)
        {
        if($M3 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month4));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 3 - ';
            echo $row['Notes'];
            echo '<br>';
            $M3++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 3 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month4 && $row['Date'] < $Month5)
        {
        if($M4 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month5));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M4++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month5 && $row['Date'] < $Month6)
        {
        if($M5 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month6));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M5++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month6 && $row['Date'] < $Month7)
        {
        if($M6 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month7));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M6++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month7 && $row['Date'] < $Month8)
        {
        if($M7 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month8));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M7++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month8 && $row['Date'] < $Month9)
        {
        if($M8 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month9));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M8++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month9 && $row['Date'] < $Month10)
        {
        if($M9 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month10));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M9++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month10 && $row['Date'] < $Month11)
        {
        if($M10 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month11));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M10++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month11 && $row['Date'] < $Month12)
        {
        if($M11 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month12));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M11++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }
    else if($row['Date'] > $Month12 && $row['Date'] < $Month13)
        {
        if($M12 < 1)
            {
            echo '<h2>';
            echo strftime('%B',strtotime($Month11));
            echo '</h2>';

            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            $M12++;
            }
        else 
            {
            echo $row['Date'];
            echo ' - 1 - ';
            echo $row['Notes'];
            echo '<br>';
            }
        }   
    else
        {

        }
    }

Вывод - обратите внимание на даты в январе:

Ноябрь

2011-11-26 - 2 - 1 месяц

Декабрь

2011-12-15 - 3 -

2011-12-20 - 3 - test32

2011-12-24 - 3 - тест

2011-12-26 - 3 - сегодня

Январь

** 2011-12-28 - 1 - тест

2011-12-30 - 1 - тест **

2012-01-05 - 1 - тест23

2012-01-13 - 1 - 12

2012-01-13 - 1 - 12

2012-01-13 - 1 - 12

2012-01-20 - 1 - 32w45

Апрель

2012-04-26 - 1 - +4 месяца

2012-04-26 - 1 - +4 месяца

1 Ответ

0 голосов
/ 28 декабря 2011

Это Рождество, так что иди.Он делает все, что вы просили (я думаю), плюс добавляет уровень гибкости.

Несколько бит можно оптимизировать, но он работает довольно хорошо.просто симулирует данные из вашей базы данных, вы можете вырезать это, как вам нужно, конечно.Ядром его является цикл for в середине.

Вывод:

enter image description here

...