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 :: Календарик

 PHP.SU

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


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

> Без описания
romanov
Отправлено: 18 Декабря, 2011 - 20:06:42
Post Id


Гость


Покинул форум
Сообщений всего: 112
Дата рег-ции: Нояб. 2011  


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




Всем привет.

Я вывожу календарь 14 дней начиная с текущей вот таким образом:

CODE (php):
скопировать код в буфер обмена
  1. if (!isset($_POST["nextDate"])&& !isset($_POST["prevDate"])):
  2.  
  3.         for ($i=0,$_SESSION['nextDat']=0; $i<=13; $i++,$_SESSION['nextDat'] +=  86400 ){
  4.                
  5.                 echo "<TD>";
  6.                
  7.                 echo strftime("%d-%B<br>%Y год",time()+$_SESSION['nextDat']);
  8.                
  9.                 echo "</TD>";
  10.         }
  11. endif;


Мне надо две кнопки которые листаю календарь вперед и назад с частотой 1 день, я написал что-то подобное но это не совсем корректно работает:

CODE (php):
скопировать код в буфер обмена
  1. if (isset($_POST["nextDate"])):
  2.    
  3.  
  4.  
  5.         $_SESSION['memoryDate'] = time() ;
  6.  
  7.         $_SESSION['memoryDate'] +=86400;
  8.        
  9.         $_SESSION['startDat'] =  $_SESSION['memoryDate'];
  10.         for ($i=0; $i<=13; $i++,$_SESSION['startDat'] +=  86400 ){
  11.                
  12.                 echo "<TD>";
  13.                
  14.                 echo strftime("%d-%B<br>%Y год",$_SESSION['startDat']);
  15.                
  16.                 echo "</TD>";
  17.         }
  18. endif;


Подскажите как мне решить эту проблему.


Отредактировано модератором: Саныч, 18 Декабря, 2011 - 23:17:29
 
 Top
Okula
Отправлено: 18 Декабря, 2011 - 21:36:47
Post Id



Участник


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


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




Посмотри в сторону интерфейса класса DateTime намного проще будет организовать.
Вот пример небольшой: в цикле будет прибавлятся по одному дню:
PHP:
скопировать код в буфер обмена
  1. $date = new DateTime;
  2. $i = 0;
  3. while($i<10) {
  4.     echo $date->format('d-m-Y')."<br />";
  5.     $date->modify('+1 day');
  6.     $i++;
  7. }

Результат работы скрипта:
CODE (htmlphp):
скопировать код в буфер обмена
  1. 19-12-2011
  2. 20-12-2011
  3. 21-12-2011
  4. 22-12-2011
  5. 23-12-2011
  6. 24-12-2011
  7. 25-12-2011
  8. 26-12-2011
  9. 27-12-2011
  10. 28-12-2011
 
 Top
romanov
Отправлено: 18 Декабря, 2011 - 21:42:35
Post Id


Гость


Покинул форум
Сообщений всего: 112
Дата рег-ции: Нояб. 2011  


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




То что вы написали я уже сделал проблема не в этом, а в том чтобы добавить кнопки которые листают календарь с частотой 1 день
 
 Top
Okula
Отправлено: 18 Декабря, 2011 - 23:14:42
Post Id



Участник


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


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




Что-то не нашёл никаких проблемм, всё же элементарно, головой просто поработать немного нужно:
PHP:
скопировать код в буфер обмена
  1. $dat = !empty($_GET['dat']) ? $_GET['dat'] : date('d-m-Y');
  2. $act = !empty($_GET['act']) ? $_GET['act'] : FALSE;
  3.  
  4. $date = new DateTime($dat);
  5.  
  6. if($act == 'p') {
  7.     $date->modify('+1 day');
  8.     $rdate = $date->format('d-m-Y');
  9. } elseif($act == 'm') {
  10.     $date->modify('-1 day');
  11.     $rdate = $date->format('d-m-Y');
  12. } else {
  13.     $rdate = $date->format('d-m-Y');
  14. }
  15.  
  16. echo '<a href="?act=m&dat='.$rdate.'">минус день</a> || '.$rdate.' || <a href="?act=p&dat='.$rdate.'">плюс день</a>';

Код рабочий, всё проверил.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB