logo

php программирование:
Автор
Blizz.. В§
Страница 14 из 16
... «   » ...
сутках -- 24 часа * 60 минут * 60 секунд). Применяя функции mktime() и date() Вы можете сформировать и вывести любую информацию, производную от введенной пользователем даты. Предположим, что Вы хотите определить, каким числом будет первая суббота (или любой другой день недели) после указанной даты. Во-первых, напишем функцию, которая будет выдавать соответствующую форму запроса: <?php function display_form() { global $PHP_SELF; $dotw = array('Sunday','Monday','Tuesday','Wednesday','Thursday', 'Friday','Saturday'); $months = array( 1 => 'January','February','March','April','May','June', 'July','August','September','October','November','December'); ?> <FORM TARGET="<?php echo $PHP_SELF; ?>" METHOD=GET> Find the first <SELECT NAME="dotw"> <?php for ($i = 0; $i < 7; $i++) { echo "<OPTION> $dotw[$i]"; } echo '</SELECT> after <SELECT NAME="month">'; for ($i = 1; $i <= 12; $i++) { echo "<OPTION VALUE=\"$i\"> $months[$i]"; } echo '</SELECT> <SELECT NAME="day">'; for ($i = 1; $i <= 31; $i++) { echo "<OPTION> $i"; } echo '</SELECT>, <SELECT NAME="year">'; $start_year = date('Y') - 10; $end_year = $start_year + 20; for ($i = $start_year; $i <= $end_year; $i++) { echo "<OPTION> $i"; } echo '<INPUT TYPE="HIDDEN" NAME="stage" VALUE="process">'; echo '</SELECT> <INPUT TYPE="SUBMIT" VALUE="Do it!"7></FORM>'; } ?> В этой функции очень мало таких моментов, которые мы еще не обсуждали. Массив $months записан немного по-другому, потому что мы хотим, чтобы индекс массива начинался с 1, а не с 0. Основную часть этой формы гораздо легче сформировать программно, вместо того, чтобы перечислять все значения элементов, так что единственная часть display_form(), которая формируется не в режиме PHP, - это строка в самом начале формы. Задание значений переменных $start_year и $end_year с помощью date('Y') служит для определения границ интервала времени, начинающегося за 10 лет до текущего года и заканчивающегося через 20 лет после него. А теперь напишем функцию для обработки формы: <?php function process_form() { global $dotw; global $month; global $day; global $year; $timestamp = mktime(0,0,0,$month,$day,$year); $next_dotw = ''; $next_timestamp = $timestamp; while ($next_dotw != $dotw) { $next_timestamp += 86400; $next_dotw = date('l',$next_timestamp); } $formatted_first = date('F d, Y',$timestamp); $formatted_next = date('F d, Y',$next_timestamp); echo "The first $dotw after $formatted_first is $formatted_next."; } ?> Во-первых, преобразуем введенную дату в формат, принятый в Unix. Если Вы хотите проявить осторожность, Вы можете здесь дополнительно проверить, попадает ли введенное...
Таги: PHP
... «   » ...

Яндекс.Метрика
Вы не авторизованы!
Авторизация
Обновить
Глав
[пред] [след]
страницы: 1 ... 12 , 13 , 14 , 15 , 16
:




Добавить в избранное (только для авторизированных)