Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Навигация по дням недели [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: проблема с навигацией
Uchkuma
Отправлено: 28 Сентября, 2010 - 18:15:13
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Не понял и огорчён
Uchkuma пишет:
Скрипт должен выводить на сайте список из 7 ссылок на текущую неделю с понедельника по воскресенье. В качестве параметра каждой ссылки должно быть соответствующее число этого дня недели. Таким образом url ссылок в этом списке должны меняться раз в неделю в понедельник в 0 часов 0 минут (т.е. при смене недели) на новые.
 
 Top
vanicon
Отправлено: 28 Сентября, 2010 - 19:04:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




я же Вам писал что да, но тут нужно сделать чуть похитрее, начинаться интервал должен с этой и недели и до ее конца, я же вас показал что должно быть на яндекск в телепрограмме вот так примерно я и хочу но пока не получается вот теперь вся надежда только на вас и на этот форум Огорчение


-----
Так было, так есть и так будет
 
 Top
cHameleon
Отправлено: 28 Сентября, 2010 - 23:19:03
Post Id



Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $number_of_days = date('t');
  2. $day = date('d');
  3. $days_left = $number_of_days - $day;
  4. $day_of_week = (date('w', mktime(0, 0, 0, date('m'), 1, date('Y')))) - 1;
  5. if($day_of_week == -1) $day_of_week = 6;
  6. $start_day = $day - $day_of_week;
  7. $days = array(
  8. 'Понедельник',
  9. 'Вторник',
  10. 'Среда',
  11. 'Четверг',
  12. 'Пятница',
  13. 'Суббота',
  14. 'Воскресенье'
  15. );
  16.  
  17. if($days_left < 7) {
  18.     for($t = 0, $i = $start_day; $t <= 7, $i <= $number_of_days; $t++, $i++) {
  19.             echo '<a href="xml.php?day='.$i.'">'.$days[$t].'</a><br>';
  20.     }
  21.     for($i = 1; $t <= 7; $t++, $i++) {
  22.             echo '<a href="xml.php?day='.$i.'"><font color="#999999">'.$days[$t].'</font></a><br>';
  23.     }
  24. }
  25. else {
  26.     for($t = 0, $i = $start_day; $t <= 7, $i <= $number_of_days; $t++, $i++) {
  27.             echo '<a href="xml.php?day='.$i.'">'.$days[$t].'</a><br>';
  28.     }
  29. }

Не понял что-то слишком громоздко получилось


-----
берём notepad++ и творим пэхэпэ-мир
 
 Top
Uchkuma
Отправлено: 28 Сентября, 2010 - 23:46:03
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




cHameleon пишет:
что-то слишком громоздко получилось
Да. Вот так будет покороче и поменьше вызовов функций:
PHP:
скопировать код в буфер обмена
  1. $days = array(
  2. 'Понедельник',
  3. 'Вторник',
  4. 'Среда',
  5. 'Четверг',
  6. 'Пятница',
  7. 'Суббота',
  8. 'Воскресенье'
  9. );
  10. $time = time();
  11. $day = date('w', $time);//сегодняшний день недели
  12. $subtract = 86400*($day==0 ? 6 : $day-1);//сколько нужно вычесть секунд от сегодняшнего дня, чтобы вернуться к понедельнику
  13. $starttime = $time-$subtract;//метка времени на начало недели
  14.  
  15. for($d=0; $d<7; $d++){//и пошли перебирать с понедельника по воскресенье
  16. $timestamp = $starttime+86400*$d;//метка текущего дня
  17. $date = date('j', $timestamp);//текущее число
  18. echo '<a href="xml.php?day='.$date.'">'.$days[$d].'</a><br>';
  19. }
Не проверял, но должно сработать.
(Добавление)
Наврал, наоборот - вызовов функций даже больше, т.к. в цикле.
 
 Top
vanicon
Отправлено: 29 Сентября, 2010 - 05:43:08
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Спасибо Вам за помощь Uchkuma, cHameleon все работает как я и хотел


-----
Так было, так есть и так будет
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB