Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Kalendarz, Kalendarz - funkcjonalnosc
JakubBab
post 4.12.2015, 17:10:00
Post #1





Grupa: Zarejestrowani
Postów: 96
Pomógł: 2
Dołączył: 13.07.2015

Ostrzeżenie: (0%)
-----


Czesc,

Przystapilem do budowy systemu rezerwacji (dla praktyki ofkors)bazujacym na kalendarzu. Znalazlem info nt. budowy kalendarza i przykladowe skrypty. Przerobilem jeden i nie rozumiem ostatniej liniki dlatego prosilbym Sz. kolegow o wyjasnienie. Pytania obok skryptu w "//".


  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5.  
  6. <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
  7. Remove this if you use the .htaccess -->
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  9.  
  10. <title>HTML</title>
  11. <meta name="description" content="">
  12. <meta name="author" content="Jakub">
  13.  
  14. <meta name="viewport" content="width=device-width; initial-scale=1.0">
  15.  
  16. <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
  17. <link rel="shortcut icon" href="/favicon.ico">
  18. <link rel="apple-touch-icon" href="/apple-touch-icon.png">
  19. <link rel="stylesheet" href="stylowy.php" media="screen">
  20. </head>
  21.  
  22. <body>
  23.  
  24. <?php
  25.  
  26.  
  27. $headings = array('Pon','Wtr','Srd','Czw','Piat','sob','Nd');
  28.  
  29. $calendar = '<table border="1" style="width:100%"><tr><td>'.implode('</td><td>', $headings).'</td></tr>';
  30.  
  31. $days_in_the_week = 1;
  32.  
  33. echo "<br/>";
  34.  
  35. $niekatywne = array('niekatywne');
  36. $calendar.='<tr>';
  37.  
  38. $running_day = date('w',mktime(0,0,0,1,1,2016));// Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday)
  39. $days_in_a_month = date('t',mktime(0,0,0,1,0,2016)); //t -> number of days in a given month
  40. $day_counter=0;
  41. $days_in_the_week= 1;
  42.  
  43.  
  44.  
  45.  
  46. ########################################################### nieaktywne od poczatku miesiaca ###################################################
  47. for ($i=0; $i < $running_day ; $i++) {
  48. $calendar.= '<td class="nieaktywne"></td>';
  49. $days_in_the_week ++;
  50. }
  51.  
  52. ############################################################# pozostale ##################################################
  53. for ($list_day=1; $list_day <= $days_in_a_month ; $list_day++) {
  54. $calendar.='<td class="aktywne">';
  55. $calendar.=$list_day;
  56.  
  57. $calendar.='</td>';
  58.  
  59.  
  60. if($running_day == 6):
  61. $calendar.= '</tr>';
  62. if(($day_counter+1) != $days_in_a_month):
  63. $calendar.= '<tr class="calendar-row">';
  64. endif;
  65. $running_day = -1;
  66. $days_in_this_week = 0;
  67. endif;
  68. $days_in_the_week++; $running_day++; $day_counter++;
  69. }
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. echo $calendar;
  82.  
  83. echo "<br/>";
  84. echo $days_in_a_month;
  85.  
  86.  
  87.  
  88.  
  89. ?>
  90.  
  91. </body>
  92. </html>


Co sprawia mi problem to:
  1. for ($list_day=1; $list_day <= $days_in_a_month ; $list_day++) {
  2. $calendar.='<td class="aktywne">';
  3. $calendar.=$list_day;
  4.  
  5. $calendar.='</td>';
  6.  
  7. ############################ prosilbym o wyltumaczenie ponizszego ###########################
  8. if($running_day == 6):
  9. $calendar.= '</tr>'; // do tego momentu jest logiczne :]
  10. if(($day_counter+1) != $days_in_a_month): // czyli jezeli wynik day_counter bedzie wiekszy niz $days_in_a_month to wtedy ponizsze nie bedzie wykonane?questionmark.gif
  11. $calendar.= '<tr class="calendar-row">';
  12. endif;
  13. $running_day = -1; // Rozujmiem, ze to koresponduje z ponizszymi post-inkrementacjami.
  14. $days_in_this_week = 0;
  15. endif;
  16. $days_in_the_week++; $running_day++; $day_counter++;
  17. }]


Ten post edytował JakubBab 4.12.2015, 17:10:20
Go to the top of the page
+Quote Post
SzpaaQ
post 4.12.2015, 18:37:05
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 22.11.2015

Ostrzeżenie: (0%)
-----


nie analizowałem całego tylko to co chciałeś

  1. if($running_day == 6):
  2. $calendar.= '</tr>';

to znaczy, że jeśli masz ostatni dzień tygodnia kończy wiersz w tabeli jeśli tak jest to dalej:

  1. if(($day_counter+1) != $days_in_a_month): // czyli jezeli wynik day_counter bedzie wiekszy niz $days_in_a_month to wtedy ponizsze nie bedzie wykonane?questionmark.gif
  2. $calendar.= '<tr class="calendar-row">';

to znaczy, że jeśli dzień obecny nie jest ostatnim dniem w miesiącu wstawia nowy wiersz na kolejne dni, jeśli to ostatni dzień - to nie ma sensu otwierać kolejnego wiersza

  1. $running_day = -1; // Rozujmiem, ze to koresponduje z ponizszymi post-inkrementacjami.
  2. $days_in_this_week = 0;

$running_day = poniedziałek albo niedziela
$days_in_this_week = który dzień w tygodniu // skoro mamy niedzielę i jest to ostatni dzień 7 to = wraca do poniedziałku 0


Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 14:45