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
Форумы портала PHP.SU :: Версия для печати :: Как разбить дату, что бы получился календарь
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Как разбить дату, что бы получился календарь

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

1. darksmoke - 16 Сентября, 2014 - 10:21:37 - перейти к сообщению
Добрый день
не как не могу решить задачу. Есть в базе данные
damp (Отобразить)

Каждый день добавляется запись.
Хочу в результате получить такой вид

2014
Январь 1 | 2 | 3 | 4 | 5 | 6 ..
Февраль 1 | 2 | 3 | 4 | 5 | 6 ..
...
2015
Январь 1 | 2 | 3 | 4 | 5 | 6 ..
Февраль 1 | 2 | 3 | 4 | 5 | 6 ..
2. Sail - 16 Сентября, 2014 - 15:23:44 - перейти к сообщению
darksmoke, гляньте этот примерчик:
PHP:
скопировать код в буфер обмена
  1.  
  2. // формируем тестовый массив с датами в виде строк, какими они могут быть получены из БД
  3. $arr = array();
  4. $date1 = new DateTime('2014-01-01');
  5. while($date1->format('Y-m-d') < '2015-12-31') {
  6.     $arr[] = $date1->format('Y-m-d');
  7.     $date1 = $date1->modify('1 day');
  8. }
  9. // далее, имея массив с датами выводим "календарик"
  10. $day = $month = $year = 0;
  11. $date = new DateTime();
  12. foreach($arr as $value) {
  13.     $date = DateTime::createFromFormat('Y-m-d', $value);
  14.     if($year !== $date->format('Y')) {
  15.         $year = $date->format('Y');
  16.         echo '<br>'.$year;
  17.     }
  18.     if($month !== $date->format('m')) {
  19.         $month = $date->format('m');
  20.         echo '<br>'.$date->format('F').' ';
  21.     }
  22.     if($day !== $date->format('d')) {
  23.         $day = $date->format('d');
  24.         echo $date->format('d').' | ';
  25.     }
  26. }
  27.  

 

Powered by ExBB FM 1.0 RC1